Является ли $(...)
тем же, что и (...)
в bash? Также $((...))
совпадает с ((...))
? Также ${...}
совпадает с {...}
? В целом, что означает знак доллара? Спасибо.
Двойная скобка с долларом и без него
Ответ 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
В общем, что означает знак доллара?
Это означает, что это означает в данном контексте.