Bash - командный интерпретатор GNU Bourne


МАСКИРОВКА


Маскировка (quoting) используется для отмены специального значения для командного интерпретатора определенных символов или слов. Маскировку можно использовать для отмены специфической обработки специальных символов, для предотвращения распознавания зарезервированных слов, а также для предотвращения подстановки параметров.

Каждый из метасимволов, перечисленных выше в разделе "", имеет специальное значение для командного интерпретатора и должен маскироваться, если используется буквально. Имеется три механизма маскировки: символ маскировки (escape character), одиночные кавычки и двойные кавычки.

Незамаскированная обратная косая черта (\) является символом маскировки. Он требует использовать следующий за ним символ (за исключением перевода строки) буквально. Если введена пара символов \ и сама обратная косая не замаскирована, эта пара обрабатывается как признак продолжения строки (т.е. она удаляется из входного потока и, по сути, игнорируется).

Все символы в одиночных кавычках используются буквально. Символ одиночной кавычки (апостроф) не должен указываться между одиночными кавычками, даже если он предваряется обратной косой.

Символы в двойных кавычках используются буквально, за исключением символов $, ` и \. Символы $ и ` в двойных кавычках имеют то же специальное значение. Обратная косая имеет специальное значение только если после нее идет один из следующих символов: $, `, ", \ или . Двойную кавычку можно указывать в двойных кавычках, замаскировав обратной косой.

Специальные параметры * и @ имеют специальное значение при указании в двойных кавычках (см. раздел ниже).

Слова вида $'строка' обрабатываются особым образомy. Слово заменяется строкой, в которой предваренные обратной косой символы заменяются в соответствии со стандартом ANSI C. Управляющие последовательности, начинающиеся с обратной косой, декодируются следующим образом:

\aтревога (звонок)
\bзабой
\eуправляющий символ
\fпрогон страницы (form feed)
\nперевод строки (new line)
\rcarriage return (возврат каретки)
\tтабуляция
\vвертикальная табудяция
\\обратная косая
\nnnсимвол, ASCII-код которого совпадает с восьмеричным значением nnn (от одной до трех цифр)
\xnnnсимвол, ASCII-код которого совпадает с шестнадцатеричным значением nnn (от одной до трех цифр)

Преобразованный результат помещается в одиночные кавычки, как если бы символа доллара просто не было.

Строка в двойных кавычках, перед которой идет символ доллара ($), будет преобразована в соответствии с текущей локалью. Если текущая локаль - C или POSIX, символ доллара игнорируется. Если строка преобразована и заменена, результат помещается в двойные кавычки.

                     



Содержание раздела