[mdk-re] Re: bash

Mikhail Zabaluev =?iso-8859-1?q?mhz_=CE=C1_alt-linux=2Eorg?=
Пн Фев 11 12:26:14 MSK 2002


Hello Vladimir,

On Fri, Feb 08, 2002 at 11:45:12AM +0300, Vladimir Karpinsky wrote:
>
> >> [user на host:~]$ echo $((07+1))
> >> 8
> >> [user на host:~]$ echo $((08+1))
> >> bash: 08: value too great for base (error token is "08")
> >> 
> >> Аналогично и для 09. Чем эти 08 и 09 принципиально отличаются от
> >> 01..07? Как с эти бороться?
> 
> БГ>    Восьмиричная система счисления? Это, видимо, от того, что
> БГ>  ноль впереди.
> 
> Нет система десятичная, 0 вылезает, поскольку в реальной жизни там
> стоит $((`date +%d`)). До сегодняшнего дня (с середины января) все
> работало, а вот сегодня выдало ошибку. Я сначала вообще не мог понять
> о чем это, поскольку строка длинная была, но потом удалось проблему
> сузить.

Числа, начинающиеся с 0, интерпретируются как восьмиричные.
Так что придётся либо найти формат, который не рисует 0 спереди, либо
не использовать вывод date в арифметике bash. В perl и python со
временем работать намного приятнее.

-- 
Stay tuned,
  MhZ                                     JID: mookid на jabber.org
___________
Boys, you have ALL been selected to LEAVE th' PLANET in 15 minutes!!




Подробная информация о списке рассылки community