ЗАДАНИЯ. · Какая команда оболочки извлекает значение переменной, имя которой со- держится в другой переменной?
· Какая команда оболочки извлекает значение переменной, имя которой со- держится в другой переменной?
· Как экспортировать переменную, чье имя содержится в другой переменной?
· Куда помещаются экспортированные переменные?
· Поместите в переменную ENV все имена переменных окружения.
· Где можно увидеть переменные окружения, установленные для процесса bash?
Экранирование (quotation)
При необходимости указать в качестве аргумента какой-либо команды или назначить переменной значение, содержащее пробелы или метасимволы, они должны быть защищены от интерпретации оболочкой. Механизм защиты специальных символов оболочки от интерпретации называется экранирова- нием (quotation).
Например, требуется назначить переменной STR1 значение Bolshoy Privet. Эта строка содержит пробел, который должен быть предотвращен от интер- претации оболочкой. Экранировать его можно, например, установив перед ним символ обратной косой черты (пример 10.11).
Пример 10.11. Экранирование обратной косой чертой |
$ STR1=Bolshoy\ Privet
$ echo $STR1 Bolshoy Privet
Обратная косая черта устраняет интерпретацию метасимвола, следующего за ней.
Для экранирования специальных символов применяются:
r одиночные кавычки '';
r двойные кавычки "";
r символ обратной косой черты \.
Одиночные кавычки используются парой и устраняют интерпретацию специ- ального значения всех метасимволов, заключенных в них, кроме других оди- ночных кавычек (пример 10.12).
Пример 10.12. Экранирование одиночными кавычками |
STR1='Stroka soderzhit $TERM' aberes@newnote aberes $ echo $STR1 Stroka soderzhit $TERM
Заметно, что символ доллара, имеющий особое значение в оболочке, защи- щен от интерпретации одиночными кавычками.
Двойные кавычки также используются парой (пример 10.13) и устраняют ин- терпретацию метасимволов кроме:
r других двойных кавычек ";
r символа доллара $;
r обратной косой черты \;
r обратной кавычки `.
Пример 10.13. Экранирование с помощью двойных кавычек |
$ STR1="'Stroka soderzhit $TERM'" aberes $ echo $STR1
'Stroka soderzhit xterm'
В примере 10.13 показано, что использование двойных кавычек не предохра- няет от интерпретации оболочкой символов доллара. В то же время одиноч- ные кавычки, заключенные в двойные, не оказали воздействия на интерпре- тацию символа доллара.
Дата добавления: 2015-06-12; просмотров: 656;