Итак, я пытаюсь вычислить 12-08
(не 12-8
) и получить следующую ошибку:
let: 08: value too great for base (error token is "08")
Вот пример кода:
first=12
second=08
if [[ ($first > $second) ]]; then
let fin=first-second
else
let fin=second-first
fi
PS Извините за промежутки
Если Вы предшествуете числу 0
, bash
обработки число как восьмеричному. Как восьмеричный основной 8 с цифрами в пределах от от 0 до 7, 08
вне диапазона для восьмеричного.
Теперь у Вас есть две опции сделать десятичное вычисление:
Опускают предшествовать 0:
$ echo $(( 12 - 8 ))
4
Явно упоминание базируются как десятичное число 10#
:
$ echo $(( 12 - 10#08 ))
4
reboot
, посмотрите отредактированный вопрос и комментарии в соответствии с ответом @Rinzwind. – Ring Ø 21 October 2017 в 22:28