Зачем использовать parens вместо backticks для выполнения команды "in situ"?

недавно я начал переключать сценарии оболочки с использования обратных ссылок на parens для выполнения команды in situ и использовать результаты в чем-то другом. Eg:

for line in `cat file`
do
    echo "$line"
done

теперь я использую parens, подставляя thusly:

for line in $(cat file)
...

какова фактическая разница между этими двумя методами, и почему замена парена считается лучше, чем обратные ссылки?

5
задан wonea
источник

1 ответов

нет никакой функциональной разницы, однако $() делает вложенность немного приятнее и легче следовать. Рассмотрим глупый пример:

$ echo `echo \`echo \\`echo foo\\`\``
foo

vs

$ echo $(echo $(echo $(echo foo)))
foo

Теперь рассмотрим это с помощью сложной серии команд, которые делают что-то полезное ;).

13
отвечен FatalError 2012-02-21 18:43:55
источник

Другие вопросы backticks bash shell-script