tl; dr : Чтобы \
заключить в кавычки специальный символ, либо экранируйте его обратной косой чертой, либо заключите его в двойные " "
или одинарные кавычки ' '
. Tab ↹Завершение заботится о правильном цитировании.
То, что вы просите, называется цитированием :
Цитирование используется для удаления специального значения определенных символов или слов в оболочке. (…) Существует три механизма цитирования: escape-символ , одинарные и двойные кавычки .
[цитаты взяты из man bash
]
Цитирование с побегом \
Обратный слэш ( \
) без кавычек является escape-символом. Он сохраняет буквальное значение следующего символа, за исключением <newline>
.
Таким образом, чтобы ввести каталог или файл со специальным символом, экранируйте последний с помощью \
, например:
cd space\ dir # change into directory called “space dir”
cat space\ file # print the content of file “space file”
echo content > \\ # print “content” into file “\”
cat \( # print the content of file “(”
ls -l \? # list file “?”
bash
«S Программируемая Завершение (ака Tab ↹Завершение) автоматически экранирует специальные символы с экранирующим символом \
.
Цитирование с двойными кавычками " "
Ограждающие символы в двойных кавычках сохраняет буквальное значение всех символов в кавычках, за исключением $
, `
, \
и, когда раскрывание истории включено, !
.
Таким образом, чтобы ввести каталог или файл со специальным символом, экранируйте по крайней мере последний или большую часть вашего имени файла или пути в двойных кавычках, например:
cd space" "dir # change into directory called “space dir”
cd spac"e di"r # equally
cd "space dir" # equally
cat "space file" # print the content of file “space file”
cat "(" # print the content of file “(”
ls -l "?" # list file “?”
Кроме того $
, `
и !
сохраняют свое особое значение в двойных кавычках, расширение строк , подстановка команд , арифметическое расширение и расширение истории выполняются для строк в двойных кавычках.
Цитирование в одинарных кавычках ' '
Заключение символов в одинарные кавычки сохраняет буквальное значение каждого символа в кавычках. Одиночная кавычка может отсутствовать между одинарными кавычками, даже если ей предшествует обратная косая черта.
Таким образом, чтобы ввести каталог или файл со специальным символом, экранируйте по крайней мере последний или большую часть вашего имени файла или пути в двойных кавычках, например:
cd space' 'dir # change into directory called “space dir”
cd spac'e di'r # equal
cd 'space dir' # equal
cat 'space file' # print the content of file “space file”
cat '(' # print the content of file “(”
ls -l '?' # list file “?”
echo content > '\' # print “content” into file “\”
Вы можете найти больше информации о цитировании в man bash
/ QUOTING , на wiki.bash-hackers.org и на tldp.org .