[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