Комментарии и маскировка в Bash

Комментарии в Bash

 

В неинтерактивной оболочке shell или в интерактивной в которой в с включенным параметром interactive_comments, знак # указывает игнорировать все символы в этой строке. Интерактивная оболочка, без включенного параметра interactive_comments не показывает комментарии. В интерактивном shell по умолчанию включен параметр interactive_comments.

 

Маскировка bash

 

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

 

Каждый из метасимволов, которые перечислены в определениях bash, имеют особое значение для shell, и должны быть заключены в кавычки, если вы не хотите использовать их как метасимволы.

 

Когда используется команда history expansion(описание её я буду писать в дальнейшем), то команды в которых используется знак «!» должны быть заключены в кавычки, иначе оболочка выдаст ошибку.

 

Существует три механизма маскировки: escape character, одинаные кавычки и двойные кавычки.

 

Символ же обратной косой черты «\», если он не находится в кавычках, требует использовать следующий за ним символ, за исключением буквального значения символа обратной косой черты «\», тоесть за исключением перевода строки. Это значит что если введено две подряд обратных косых черты «\\» то одна из них просто игнорируется, а вторая выводится как продолжение строки.

 

Символы которые заключены в одинарные кавычки сохраняют буквальное значение каждого символа в кавычках. Одинаные кавычки нельзя использовать в других одинарных кавычках, даже в том случае если перед ними стоит обратная косая черта «\».

 

Символы которые находятся в двойных кавычках, используются буквально, исключая символы «$». «» и «\». Обратная же косая черта имеет специальное значение лишь в том случае, если после нее идет один из символов «$», «», ««» или «\»(перевод строки). Двойную кавычку можно использовать в двойных кавычках, замаскировав ей обратной косой чертой «\». Специальные параметры «*» и «@» будут иметь специальное значениеесли их указать в двойных кавычках.

 

Слова имеющие вид $’строка’ обрабатываются особым образом. Слово заменяется строкой где предваренные обратной косой чертой «\» символы, заменяются соответственно стандарта ANSI C. Обратный слеш, обратная косая черта «\» управляет последовательностями, если такие присутствуют и декодируется следующим образом:

 

\a — оповещение(звонок)

\b — Backspace(пробел назад)

\e

\E — управляющий символ

\f — прогон страницы

\n — новая строка

\r — возврат каретки(перевод строки)

\t — горизонтальные вкладки

\v — вертикальные вкладки

\\ — обратная косая черта

\’ — одинаные кавычки

— двойные кавычки

\nnn — восьмибитовый символ, значение которого восьмеричное значение nnn(от одной до трех цифр)

\xHH — восьмибитные символы, значение которых является шестнадцатеричным значением HH(одна или две шестнадцатеричных цифр)

\uHHHH — the Unicode (ISO/IEC 10646) символ, значение которого шестнадцатеричное значеие HHHH(от одного до четырех шестнадцатеричных цифр)

\UHHHHHHHH — Unicode (ISO/IEC 10646) символ, значение которого шестнадцатеричное значение HHHHHHHH(от одного до восьми шестнадцатеричных цифр)

\cxCtrl-x возврат на одну позицию

 

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

 

Строка в двойных кавычках, которой предшествует символ доллара «$», будет расширена в соответствии с текущей локалицацией. В том случае если текущая локализация C или POSIX символ доллара «$» игнорируется. Если же строка переведена и заменена, результат помещается в двойные кавычки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *