Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Руководство по Bash для начинающих
Назад Глава 3: Среда окружения Bash Вперед

Символы кавычек

Для чего?

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

Отмена свойств специальных символов

Некоторые одиночные символы имеют особые свойства, которые можно отключать. В Bash для этого используются символ обратного слеша (\), если он не заключен в кавычки. Специальный символ, следующий непосредственно за обратным слешем, за исключением символа новой строки, рассматривается как обычный символ-литерал, не имеющих каких-либо специальных свойств. Если символ новой строки следует непосредственно за символом обратного слеша, то в тех случаях, когда строка превышает ширину терминала ввода, обратный слеш указывает на продолжение строки; обратный слеш удаляется из входного потока и фактически игнорируется.

franky ~> date=20021226

franky ~> echo $date
20021226

franky ~> echo \$date
$date

В этом примере, создается переменная date и в ней запоминается значение. Первая команда echo отображает значение переменной, но во второй команде особые свойства знака "доллар" отменены.

Одинарные кавычки

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

Мы продолжим предыдущий пример:

franky ~> echo '$date'
$date

Двойные кавычки

Двойные кавычки также используются для того, чтобы интерпретировать все символы, расположенные между ними, как литеральные значения, за исключением знака "доллар", обратных кавычек (одинарные обратные кавычки ` `) и обратного слеша.

Знак "доллар" и обратные кавычки, заключенные в двойные кавычки, сохраняют свойства специальных символов.

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

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

franky ~> echo "$date"
20021226

franky ~> echo "`date`"
Sun Apr 20 11:22:06 CEST 2003

franky ~> echo "I'd say: \"Go for it"'!"'
I'd say: "Go for it!"

franky ~> echo "\"
More input>"

franky ~> echo "\\"
\

Кавычки в формате ANSI-C

Слова в формате "$'STRING'" обрабатывают особым образом. Согласно стандарту ANSI-C, слово заменяется строкой, в которой перед специальными символами добавляются обратные слеши. Подробности можно найти в документации Bash.

Локали

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


Предыдущий раздел: Оглавление Следующий раздел:
Переменные   Подстановки, выполняемые командной оболочкой



Средняя оценка 5 при 1 голосовавших