7

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

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

Теперь я использую парены, подставляя таким образом:

for line in $(cat file)
...

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

1 ответ1

13

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

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

против

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .