On Thu, Nov 17, 2011 at 11:51:09AM +0400, Vladimir Karpinsky wrote: > Уже некоторое время пытаюсь найти простое решение следующей > проблемы: нужно производить простейшие арифметические операции (как > правило + или -1 ;-)) с "юлианскими" днями года (date +%j). > Сложность заключается в том, что формат такой даты JJJ, т.е. первые > 99 дней года первая цифра 0, и bash считает это число восьмеричным, > со всеми вытекающими последствиями. Хочется заставить bash работать > с такими числами, как десятеричными, формат JJJ для результата > вычисления желательно также сохранить. Именно в bash поддерживается синтаксис вида BASE#NUMBER с явным указаним основания: $ bash -c 'a=011; echo $((10#$a))' 11 Нужно учитывать, что в POSIX sh такой синтаксис не поддерживается, поэтому в скриптах нужно явно указывать #!/bin/bash (использование #!/bin/sh в ALT пока не проявится в виде ошибок, но в некоторых дистрибутивах в роли /bin/sh может оказаться, например, dash). Выводить числа в нужном формате можно через printf '%03d' $n .