Подтвердить что ты не робот

Двойная скобка с долларом и без него

Является ли $(...) тем же, что и (...) в bash? Также $((...)) совпадает с ((...))? Также ${...} совпадает с {...}? В целом, что означает знак доллара? Спасибо.

4b9b3361

Ответ 1

  • $(...) означает выполнение команды в parens и возвращение ее stdout. Пример:

    $ echo "The current date is $(date)"
    The current date is Mon Jul  6 14:27:59 PDT 2015
    
  • (...) означает выполнение команд, перечисленных в parens в подоболочке. Пример:

    $ a=1; (a=2; echo "inside: a=$a"); echo "outside: a=$a"
    inside: a=2
    outside: a=1
    
  • $((...)) означает выполнение арифметики и возврат результата вычисления. Пример:

    $ a=$((2+3)); echo "a=$a"
    a=5
    
  • ((...)) означает выполнить арифметику, возможно, изменив значения переменных оболочки, но не вернет ее результат. Пример:

    $ ((a=2+3)); echo "a=$a"
    a=5
    
  • ${...} означает возврат значения переменной оболочки, указанной в фигурных скобках. Пример:

    $ echo ${SHELL}
    /bin/bash
    
  • {...} означает выполнение команд в фигурных скобках в виде группы. Пример:

    $ false || { echo "We failed"; exit 1; }
    We failed
    

В общем, что означает знак доллара?

Это означает, что это означает в данном контексте.