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

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

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

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

for line in $(cat file)
...

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

25
задан wonea
17.11.2022 11:32 Количество просмотров материала 2922
Распечатать страницу

1 ответ

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

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

vs

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

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

13
отвечен FatalError 2022-11-18 19:20

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх