LINUX.ORG.RU

value too great for base (error token is «090»)

 


0

1

Имеется код,

DST_DIR=«$ORDERS_ROOT/$(($ORDER_NO-${ORDER_NO: -3}))-$(($ORDER_NO-${ORDER_NO: -3}+999))/»;

В ходе которого к переменной присваивается директория.

Например ORDER_NO = 57943 В итоге должно получиться DST_DIR=Orders_root/57000-57999

С такими данными всё работает корректно, но при попытке подставить число 14090 выдало сообщение из темы.

Погуглив, понял, что bash принимает данные числа как десятичные, восьмеричные и т.д. Но ума не хватает понять как это победить.

На сколько понимаю. Необходимо сообщить сценарию, что это десятичные числа, путём добавления 10#

В итоге получилось так: DST_DIR=«$ORDERS_ROOT/$((10#$ORDER_NO-${ORDER_NO: -3}))-$((10#$ORDER_NO-${ORDER_NO: -3}+999))/»;

Но ошибка сохранилась: 10#41090-090: value too great for base (error token is «090»)