Существует три механизма цитирования: escape-символ , одинарные и двойные кавычки.
Обратная косая черта без кавычек ( \ ) является
escape-символом . Он сохраняет буквальное значение следующего символа, за исключением <newline>. Если появляется пара \ <newline>, а обратная косая черта сама по себе не заключена в кавычки, \ <newline> рассматривается как продолжение строки (то есть она удаляется из входного потока и фактически игнорируется).
Заключение символов в одинарные кавычки сохраняет буквальное значение каждого символа в кавычках. Одиночная кавычка может отсутствовать между одинарными кавычками, даже если ей предшествует обратная косая черта.
Заключение символов в двойные кавычки сохраняет буквальное значение всех символов в кавычках, за исключением $ , ` , \ и, когда расширение истории включено ,! , Символы $ и ` сохраняют свое особое значение в двойных кавычках. Обратная косая черта сохраняет свое специальное значение только тогда, когда за ней следует один из следующих символов: $ , ` , " ,
\ или <newline> . Двойная кавычка может заключаться в двойные кавычки, если перед ней стоит обратная косая черта. Если включено, расширение истории будет выполняться, если! в двойных кавычках экранируется обратная косая черта. Обратная косая черта предшествует ! не удаляется.
Специальные параметры * и @ имеют особое значение в двойных кавычках (см. ПАРАМЕТРЫ ниже).
Слова вида $ ' string ' обрабатываются специально. Слово расширяется до строки , символы с обратной косой чертой заменяются в соответствии со стандартом ANSI C. Escape-последовательности с обратной косой чертой, если они есть, декодируются следующим образом:
\ оповещение (звонок)
\ b возврат на одну позицию
\ e
\ E escape-символ
\ f перевод
строки \ n новая строка
\ r возврат каретки
\ t горизонтальная табуляция
\ v вертикальная табуляция
\\ обратная косая черта
\ " одинарная кавычка
\" двойная кавычка
\ nnn the восьмибитный символ, значение которого является восьмеричным значением nnn
(от одной до трех цифр)
\ x HH восьмибитный символ, значение которого является шестнадцатеричным значением HH
(одна или две шестнадцатеричные цифры)
\ u HHHH символ Unicode (ISO / IEC 10646), значение которого
шестнадцатеричное значение HHHH (от одной до четырех шестнадцатеричных цифр)
\ U HHHHHHHH
символ Unicode (ISO / IEC 10646), значение которого
шестнадцатеричное значение HHHHHHHH (от одной до восьми шестнадцатеричных цифр)
\ c x контрольный символ x
Расширенный результат заключен в одинарные кавычки, как если бы знак доллара отсутствовал.
Строка в двойных кавычках, перед которой стоит знак доллара ( $ " string " ), приведет к переводу строки в соответствии с текущей локалью. Если текущим языковым стандартом является C или POSIX , знак доллара игнорируется. Если строка переведена и заменена, замена заменяется двойными кавычками.
"$HOME"
или параметров"${USER:-root}"
, подстановку команд в форме"$(date)"
или"`date`"
арифметическое расширение"$((1 + 2))"
, расширение истории"!!"
или экранирование обратной косой черты"\\"
. Вместо этого используйте одинарные кавычки. См. Справочную страницу руководства по bash, раздел «Цитирование».