Назад | Перейти на главную страницу

Есть ли разница в методах выполнения команд в подоболочке?

Интересно, есть ли существенная разница в вызове суб-оболочки через $(...) или `...`?

Например:

a=$(ls -la /tmp | grep vox-*)

И:

a=`ls -la /tmp | grep vox-*`

Результат будет полностью таким же, но я хочу знать, почему существует два разных метода, в чем разница и какой из них мне следует использовать.

Backsticks и $(...) идентичны по функциональности. Однако я предпочитаю второй подход

  • $(...) может быть легко вложен

  • читаемость, $(...) более "башиш"

  • согласованность, как аналогичный синтаксис, $((...)), для выражений

Смотрите также эта страница у этого есть другие аргументы.