Почему я должен использовать $ вместо $ ((EXPR))?

В абзаце, объясняющем арифметическое расширение, руководство пользователя Bash раскрывает 2 разных способа оценки выражения, первый использует $(( EXPRESSION )) а второй использует $[ EXPRESSION ] . Эти два способа кажутся довольно похожими, поскольку единственная разница, которую я нашел:

$[ EXPRESSION ] рассчитывает только результат EXPRESSION и не выполняет никаких тестов:

Тем не менее, я заинтригован, потому что в одном документе рекомендуется использовать $[ EXPRESSION ] а не $(( EXPRESSION )) .

По возможности пользователи Bash должны использовать синтаксис с квадратными скобками:

Зачем вам это нужно, если меньше тестов?

  • Лучшая практика сценария BASH
  • Как мы можем предотвратить расширение параметра?
  • Почему grep не дает мне все найденные строки?
  • Распространено ли разделение большего скрипта на несколько сценариев и источник их в главном скрипте?
  • как получить файл определения переменной
  • Почему значение BASH_SUBSHELL не изменяется при изменении значения SHLVL?
  • Какой io-поток выполняет эту линию вывода с помощью dstat
  • подсчет символов с использованием bash
  • One Solution collect form web for “Почему я должен использовать $ вместо $ ((EXPR))?”

    Вопрос о дублировании (с ответом)

    https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression

    В manpage для bash v3.2.48 говорится:

    […] Формат арифметического расширения:

      $((expression)) 

    Старый формат $ [выражение] устарел и будет удален в будущих версиях bash.

    Таким образом, $ […] – это старый синтаксис, который больше не должен использоваться

    В дополнение к этому ответу:

    http://manual.cream.org/index.cgi/bash.1#27

    Информация, относящаяся к версиям bash:

    Вот некоторая информация о страницах руководства bash (трудно найти информацию о том, к какой версии относится каждый):

    Ссылка OPs:

    http://www.tldp.org/guides.html Bash Guide for Beginners версия: 1.11 автор: Machtelt Garrels, последнее обновление: декабрь 2008 г.

    sth (74.6k rep), цитирующий bash v3.2.48

    от https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression )

    Примечание. Подробнее о [] vs (()) здесь: http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00033.html

    ссылка, которую я нашел:

    http://www.gnu.org/software/bash/manual/ Последнее обновление 22 августа 2012 г.

    http://www.gnu.org/software/bash/manual/bash.html#Arithmetic-Expansion

    Linux и Unix - лучшая ОС в мире.