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

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

Например:

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

А также:

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

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

1 ответ

Решение

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

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

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

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

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

Другие вопросы по тегам