Bash subshell: parenthese:() VS dollar-parenthese: $()
В bash оба () и $() создают подоболочку.
Какая разница между собой? Каковы их типичные обычаи?
Ответ 1
() просто создает составную команду, запускающую команды внутри круглых скобок. $() делает то же самое, но также заменяет вывод.
Из документов:
(list) list выполняется в среде подсетей... Переменные назначения и встроенные команды, которые влияют на среду оболочки, не остаются в силе после завершения команды. Статус возврата статус выхода list.
Замена команды Подстановка команды позволяет выводить команду на замену имени команды. Существуют две формы:
$(command)
или
`command`
Bash выполняет расширение, выполняя command и заменяя подстановку команд стандартным выходом команды, с удалением любых завершающих строк.