С помощью Ubuntu Desktop у меня открыт терминал, и я использую оболочку bash. Одним из расширений оболочки bash является арифметическое расширение со следующим синтаксисом:
$(( EXPRESSION ))
or
$[ EXPRESSION ]
Когда я делаю арифметику, он возвращает правильное значение, но за ним всегда следует «команда не найдена»:
$ $((1+2))
3: command not found
$ $[1+2]
3: command not found
$ $[2+2]
4: command not found
$ $((2*6))
12: command not found
Мой вопрос в том, почему он отображает «команда не найдена» и как я могу ее исправить?
$ $((1+2))
3: command not found
Что здесь происходит, так это то, что bash вычисляет $((1+2)), что приводит к 3. bash затем ищет команду с именем 3 для выполнения. Он не находит его. Отсюда и ошибка. Как предлагает @Avinash, используйте echo, чтобы избежать этого.
$ echo $((1+2))
3
Поскольку bash пытается выполнить вывод вашего расширения, и он не найдет command с именем 3 в PATH. Чтобы просто попробовать, используйте echo или назначьте его переменной и используйте ее позже.
echo $((1+2))
3
test=$((1+2))
echo $test
3