Есть ли разница в методах выполнения команд в подоболочке?
Интересно, есть ли существенная разница в вызове оболочки через $(...)
или же `...`
?
Например:
a=$(ls -la /tmp | grep vox-*)
А также:
a=`ls -la /tmp | grep vox-*`
Результат будет абсолютно одинаковым, но я хочу знать, почему существуют два разных метода, в чем разница, и какой мне следует использовать.
1 ответ
Решение
Палочки для еды и $(...)
идентичны с точки зрения функциональности. Однако я предпочитаю второй подход
$(...)
может быть легко вложенчитаемость,
$(...)
более "башиш"последовательность, как похожий синтаксис,
$((...))
, для выражений
Смотрите также эту страницу, которая имеет другие аргументы.