Я делал этот действительно простой арифметический скрипт, но получил странную ошибку при попытке передать оператор *
.
Синтаксис: [команда] [номер1] [номер2] [арифметический оператор]
Вот код:
result=$(($1$3$2))
echo "Calculation result is: $result "
Передача оператора '*', например:
bash my_script.sh 1 2 *
... возвращает следующую ошибку:
строка 7: 3Access: слишком большое значение для базы (токен ошибки "3Access")
Я собрал вместе исправление для него, заменив *
на \\\*
через оператор проверки. Хотя я хотел бы понять , почему эта ошибка возникает.
Единственные потоки, которые я обнаружил, относятся к ошибке относительно восьмеричных значений, которые BASH принимает за восьмеричные. Но мне непонятно, почему *
вообще рассматривается как числовое значение.