[mdk-re] bash

Eugene Pazhitnov =?iso-8859-1?q?pazhitnov_=CE=C1_ancor=2Eco=2Eru?=
Пт Фев 8 13:08:00 MSK 2002


8 Февраль 2002 12:10, Вы написали:

> >> тут столкнулся со следующей проблемой:
> >>
> >> [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? Как с эти бороться?
>
> AES> я точно не уверен(пускай меня поправят)
> AES> но если перед числом стоит 0 то это 8-ричная система
>
> AES> bash-2.04$ echo $((08+1))
> AES> bash: 08: value too great for base (error token is "08")
> AES> bash-2.04$ echo $((8+1))
> AES> 9
> AES> bash-2.04$ echo $((9+1))
> AES> 10
> AES> bash-2.04$ echo $((0x9f+1))
> AES> 160
> AES> bash-2.04$
>
> Проблема понятна. Я уже написал  в этот тред откуда у меня вылезает 0
> теперь значит другой вопрос: можно ли в явном виде указать десятичную
> систему, несмотря на торчащий впереди 0?

А вообще (имхо) оптимальнее использовать слегка другие методы для календарной 
арифметики. Вот, например, строка, выдающая завтрашнее число и правильно 
работающая в концах месяцев.

perl -e 'use POSIX; print strftime("%e",localtime(time+24*3600));'


-- 
Eugene Pazhitnov
ANCOR, Russia




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