& ldquo; команда не найдена & rdquo; при использовании арифметического расширения в оболочке bash

С помощью 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
задан 15 March 2014 в 20:02

2 ответа

$ $((1+2))
3: command not found

Что здесь происходит, так это то, что bash вычисляет $((1+2)), что приводит к 3. bash затем ищет команду с именем 3 для выполнения. Он не находит его. Отсюда и ошибка. Как предлагает @Avinash, используйте echo, чтобы избежать этого.

$ echo  $((1+2))
3
4
ответ дан 24 May 2018 в 10:46

Поскольку bash пытается выполнить вывод вашего расширения, и он не найдет command с именем 3 в PATH. Чтобы просто попробовать, используйте echo или назначьте его переменной и используйте ее позже.

echo $((1+2))
3
test=$((1+2))
echo $test
3
3
ответ дан 24 May 2018 в 10:46

Другие вопросы по тегам:

Похожие вопросы: