В чем разница между -> result = $ (ls -l) (или) -> result = `ls -l` - PullRequest
3 голосов
/ 07 февраля 2010

Я выполнил обе команды, и они, кажется, делают одно и то же, правда ли это или что-то происходит, чего я не вижу?

Эти двое, кажется, делают одно и то же:

result=$(ls -l)   
result=`ls -l`

Ответы [ 2 ]

4 голосов
/ 07 февраля 2010

Пожалуйста, проверьте http://nixcraft.com/shell-scripting/13288-loop-input-backticks-vs-differences.html#post19804 для хорошего объяснения этого случая.

1 голос
/ 07 февраля 2010

Страница man bash сообщает следующее в разделе Подстановка команд.

Когда старая форма обратной кавычки замена используется, обратный слеш сохраняет свое буквальное значение, кроме когда следует $, `или. Первая обратная цитата не предшествует обратная косая черта завершает команду суб-stitution. При использовании Форма $ (команда), все символы между скобками составляют команда; никто не лечится специально.

Подстановки команд могут быть вложенными. Вложить при использовании обратных кавычек формировать, избегать внутренних кавычек с обратная косая черта.

Онлайн копии страницы руководства sh:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...