МАСКИРОВКА
Маскировка (quoting) используется для отмены специального значения для командного интерпретатора определенных символов или слов. Маскировку можно использовать для отмены специфической обработки специальных символов, для предотвращения распознавания зарезервированных слов, а также для предотвращения подстановки параметров.
Каждый из метасимволов, перечисленных выше в разделе "", имеет специальное значение для командного интерпретатора и должен маскироваться, если используется буквально. Имеется три механизма маскировки: символ маскировки (escape character), одиночные кавычки и двойные кавычки.
Незамаскированная обратная косая черта (\) является символом маскировки. Он требует использовать следующий за ним символ (за исключением перевода строки) буквально. Если введена пара символов \ и сама обратная косая не замаскирована, эта пара обрабатывается как признак продолжения строки (т.е. она удаляется из входного потока и, по сути, игнорируется).
Все символы в одиночных кавычках используются буквально. Символ одиночной кавычки (апостроф) не должен указываться между одиночными кавычками, даже если он предваряется обратной косой.
Символы в двойных кавычках используются буквально, за исключением символов $, ` и \. Символы $ и ` в двойных кавычках имеют то же специальное значение. Обратная косая имеет специальное значение только если после нее идет один из следующих символов: $, `, ", \ или . Двойную кавычку можно указывать в двойных кавычках, замаскировав обратной косой.
Специальные параметры * и @ имеют специальное значение при указании в двойных кавычках (см. раздел ниже).
Слова вида $'строка' обрабатываются особым образомy. Слово заменяется строкой, в которой предваренные обратной косой символы заменяются в соответствии со стандартом ANSI C. Управляющие последовательности, начинающиеся с обратной косой, декодируются следующим образом:
\a | тревога (звонок) |
\b | забой |
\e | управляющий символ |
\f | прогон страницы (form feed) |
\n | перевод строки (new line) |
\r | carriage return (возврат каретки) |
\t | табуляция |
\v | вертикальная табудяция |
\\ | обратная косая |
\nnn | символ, ASCII-код которого совпадает с восьмеричным значением nnn (от одной до трех цифр) |
\xnnn | символ, ASCII-код которого совпадает с шестнадцатеричным значением nnn (от одной до трех цифр) |
Преобразованный результат помещается в одиночные кавычки, как если бы символа доллара просто не было.
Строка в двойных кавычках, перед которой идет символ доллара ($), будет преобразована в соответствии с текущей локалью. Если текущая локаль - C или POSIX, символ доллара игнорируется. Если строка преобразована и заменена, результат помещается в двойные кавычки.