2016-12-10 8 views
0

Я не знаю этого оператора $ [] и не мог найти что-то об этом. Однако я знаю, что следующие два кода дают тот же выход

a=4 
b=1 
echo $[a-b] # => 3 

и

a=4 
b=1 
echo $((a-b)) # => 3 

Так что $ [] оператор, и в чем разница с $ (())?

В моем приглашении оболочки zsh, когда я открываю любой из них и не закрываю их, у меня есть mathsubst.

ответ

2

Чтение man bash говорит, что старый формат $[expression] устарел и будет удален. В противном случае они должны быть эквивалентными.

Арифметическое расширение позволяет оценивать арифметическое выражение и замену результата. Формат арифметического расширения является:

  $((expression)) 

старый формат $[expression] является устаревшим и будет удален в новых версиях Баш.

+0

Даже предупреждение об исключении было удалено с man-страницы некоторое время назад, хотя синтаксис по-прежнему поддерживается как «bash» 4.4. – chepner

 Смежные вопросы

  • Нет связанных вопросов^_^