From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-Id: <200202081012.g18ACNU00862@ancor.co.ru> Content-Type: text/plain; charset="koi8-r" From: Eugene Pazhitnov Organization: ANCOR, Russia To: mandrake-russian@altlinux.ru Subject: Re: Re[2]: [mdk-re] bash X-Mailer: KMail [version 1.3.2] References: <1885704841.20020208112649@beep.ru> <20020208114332.B3307@it.yartelecom.ru> <1028331406.20020208121035@beep.ru> In-Reply-To: <1028331406.20020208121035@beep.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: mandrake-russian-admin@altlinux.ru Errors-To: mandrake-russian-admin@altlinux.ru X-BeenThere: mandrake-russian@altlinux.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: mandrake-russian@altlinux.ru List-Help: List-Post: List-Subscribe: , List-Id: Linux-Mandrake RE / ALT Linux discussion list List-Unsubscribe: , List-Archive: Date: Fri Feb 8 13:08:00 2002 X-Original-Date: Fri, 8 Feb 2002 13:12:23 +0300 Archived-At: List-Archive: List-Post: 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