Арифметика оболочки: обращение к переменной без начального $

Я был удивлен, прочитав это в руководстве Bash, где описывается Арифметическое вычисление :

Внутри выражения на переменные оболочки можно также ссылаться по имени без использования синтаксиса раскрытия параметров.

Я пробовал, и действительно, var ведет себя так же, как $ var :

❯ var=9
❯ echo $(( var + 5 ))
14
❯ (( var < 10 )) && echo 'single digits!'
single digits!

Считается ли это плохой практикой? Переносится ли он на другие оболочки или это башизм?

0
13.06.2017, 04:41
1 ответ

Не считается плохой практикой не использовать $для переменных внутри арифметического вычисления. Что касается переносимости, то ((…))вообще не POSIX, поэтому он не будет работать в оболочках типа dash. Он будет работать в zsh и ksh. С другой стороны, $((…))находится в POSIX и работает во всех современных оболочках в стиле sh -.

2
28.01.2020, 02:33

Теги

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