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

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

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

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

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

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

  • напишите строку до ее выполнения, не записывая ее дважды
  • Как использовать встроенный bash для замены вывода подоболочки или функции
  • Как я могу ссылаться на все файлы, включая скрытые файлы?
  • Аргумент string для integer в bash
  • Что не так с этим кодом?
  • Как я могу сделать -e уловить ошибку в скрипте внутри скрипта?
  • Скрипт для открытия emacs двумя разными способами
  • В 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

    Interesting Posts

    filefrag fibmap возвращает неправильное физическое смещение для FAT

    Добавление пользователя в группу по умолчанию

    ssh tunnel w / auth только для прокси

    С помощью команды «cat» Linux, как показать только определенные строки по числу

    Как я могу удалить пакеты, не проверенные с помощью pacman, которые я установил из источника?

    Перенаправление портов, предупреждение консоли Render – Rails v4.2.6

    Sed и BBedit Html

    Как закрыть окно разбитого приложения?

    Как сделать modsecurity, чтобы наказать пользователей, добавив задержку при обнаружении некоторых SQL-инъекций

    Как создать связь между интерфейсами, маршрутом и процессом

    Как указать альтернативный интерфейс моста (не br0) при использовании qemu-bridge-helper

    Доступ к URL-адресу офиса через внешний браузер

    Разбиение последовательности на фиксированную ширину

    Как добавить всех членов netgroup в группу

    chcon: не может применяться частичный контекст к немаркированному файлу '/ usr / sbin / xrdp'

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