Bash subshell: parenthese:() VS dollar-parenthese: $()

В bash оба () и $() создают подоболочку.

Какая разница между собой? Каковы их типичные обычаи?

Ответы

Ответ 1

() просто создает составную команду, запускающую команды внутри круглых скобок. $() делает то же самое, но также заменяет вывод.

Из документов:

  • (list)
    list выполняется в среде подсетей... Переменные назначения и встроенные         команды, которые влияют на среду оболочки, не остаются в силе после завершения команды. Статус возврата         статус выхода list.

  • Замена команды
     Подстановка команды позволяет выводить команду на замену имени команды. Существуют две формы:

    $(command)
    

    или

    `command`
    

    Bash выполняет расширение, выполняя command и заменяя подстановку команд стандартным выходом команды,  с удалением любых завершающих строк.