2016-12-26 8 views

ответ

2

Переменные оболочки расширены дословно, поэтому вы должны использовать опцию quoted. Допустим, ваша переменная $ HOME была равна /Users/rocket spacer. В этом случае будет разница между запуском rm -rf /Users/rocket spacer и rm -rf "/Users/rocket spacer". Первый попытается удалить две вещи: /Users/rocket и spacer в текущем каталоге. Второй вариант сделает то, что вы хотите, и удалите каталог /Users/rocket spacer. В общем случае при расширении переменной оболочки, представляющей путь, вы должны обернуть ее в кавычки, чтобы не беспокоиться о возможности чего-либо неправильно истолкованного.

+0

Кроме того, я видел другую цитату, цитату, а не одну цитату. Как видно из этого ответа, http://unix.stackexchange.com/a/84980. Когда я его использую? – rocketspacer

+1

Это называется backtick, и все внутри него будет оцениваться, а затем заменяется на вашу команду bash. Например, если вы хотите распечатать «Мое имя» и имя текущего пользователя, вы можете запустить echo «Я' whoami » –

+0

К сожалению, в моем комментарии выше, обратные такты заставили« whoami »быть отформатированный как код, но я хотел бы запустить: echo «Я (backtick) whoami (backtick)» –

 Смежные вопросы

  • Нет связанных вопросов^_^