Разница между пробелами "" и "\" в bash - PullRequest
4 голосов
/ 05 августа 2011

Есть ли разница между " " и \ в bash?

Например, ls *" "* и ls *\ * вернут мне один и тот же результат.

Ответы [ 2 ]

8 голосов
/ 05 августа 2011

версия "" повлечет за собой чуть больше затрат на анализ внутренних значений кавычек для любых потенциальных переменных / операторов.Версия с обратным слешем будет восприниматься как буквальное пространство без дополнительных издержек.Однако фактическая стоимость использования процессором времени / памяти между этими двумя устройствами будет чрезвычайно микроскопической, если только она не находится внутри цикла, который выполняется в каджиллионах раз.

0 голосов
/ 05 августа 2011

Обратная косая черта маскирует только следующий символ и может быть набрана быстрее, если вы просто хотите замаскировать один, но это может зависеть от вашей раскладки клавиатуры, а также от того, печатаете ли вы с 10 пальцами вслепую или нет.Я предпочитаю цитаты, потому что их легче набирать.

Маскирование друг друга и самого себя - это еще одно отличие:

echo \\

выведет обратную косую черту, но

echo "\"

выведет "и будет ждать закрывающей кавычки.

echo \"

будет работать и выводить кавычки, но

echo """ 

не будет по той же причине, что и выше.

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

/bin/echo -e "\tfoo\abar\bbar\ffoo\nbar\rfoo"

См. man echo для получения полного списка.

Это не такверно только для echo, но для многих вещей, которые вы можете делать в скриптах, работая со строками.

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