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