Существует три механизма кавычек: escape символ, одинарные кавычки и двойные кавычки.
Обратная косая черта без кавычек ( ** ) - это символ escape. Он сохраняет буквальное значение следующего символа, за исключением <newline>. Если появляется пара ** <newline> и обратная косая черта сама по себе не цитируется, то ** <newline> считается продолжением строки (т. е. удаляется из входного потока и фактически игнорируется).
Заключение символов в отдельные кавычки сохраняет буквальное значение каждого символа в кавычках. Одна кавычка не может находиться между кавычками, даже если ей предшествует обратная косая черта.
Заключение символов в двойные кавычки сохраняет буквальное значение всех символов в кавычках, за исключением $ , ` , ** , and, when history expansion is enabled, **!. The characters $ and ` сохраняет их особое значение в двойных кавычках. Обратный слеш сохраняет свое особое значение только в том случае, если за ним следует один из следующих символов: $ , `, *, *** или **<newline>. Двойная кавычка может быть заключена в двойные кавычки, если перед ней обратная косая черта. Если включено, расширение истории будет выполняться, если только !, появляющееся в двойных кавычках, не экранируется с помощью обратной косой черты. Обратная косая черта, предшествующая !, не удаляется.
Специальные параметры * и @ имеют особое значение при использовании в двойных кавычках (см. PARAMETERS ниже).
Слова формы $‘ string ’ обрабатываются особым образом. Слово расширяется до string, при этом символы в обратной кодировке заменяются на символы, указанные в стандарте ANSI C. Последовательности экранирования обратной косой черты, если они присутствуют, декодируются следующим образом:
**\a** alert (bell) **\b** backspace **\e**** \E **an escape character** \f **form feed** \n **new line** \r **carriage return** \t **horizontal tab** \v **vertical tab** \ **backslash**
Расширенный результат разворачивается в одну кавычку, как если бы знака доллара не было.
Строка в двойных кавычках, которой предшествует знак доллара ( **$"** _string_ **"**), приведет к тому, что строка будет переведена в соответствии с текущей локалью. Если текущая локаль равна **C** или **POSIX**, знак доллара игнорируется. Если строка будет переведена и заменена, то замена будет заключена в двойные кавычки. **single quote** \" **double quote** \**_nnn_ the eight-bit character whose value is the octal value _nnn_ (one to three digits)**\x**_HH_ the eight-bit character whose value is the hexadecimal value _HH_ (one or two hex digits)**\u**_HHHH_ the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value _HHHH_ (one to four hex digits)**\U**_HHHHHHHH_ the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value _HHHHHHHH_ (one to eight hex digits)**\c**_x_ a control-_x_ character
Расширенный результат разворачивается в одну кавычку, как если бы знака доллара не было.
Строка в двойных кавычках, которой предшествует знак доллара ( $“ string ”), приведет к тому, что строка будет переведена в соответствии с текущей локалью. Если текущая локаль равна C или POSIX, знак доллара игнорируется. Если строка будет переведена и заменена, то замена будет заключена в двойные кавычки.