Переменные оболочки и окружения

Bash позволяет временно сохранять данные в переменных оболочки. Пере- менные оболочки размещаются в памяти автоматически при присвоении им значения через знак равенства. В примере 2.21 переменной VAR1 присваива- ется значение Privet!.

 

Пример 2.21. Переменная оболочки

 

$ VAR1=Privet!

$ echo $VAR1 Privet!


 

Для извлечения значения переменной необходимо перед ее именем устано- вить знак доллара ($). Команда echo выводит значение переменной VAR1.

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

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

 

Пример 2.22. Переменная, содержащая строку с пробелом

 

$ VAR1='Bolshoy Privet!'

$ echo $VAR1 Bolshoy Privet!

 

При необходимости добавления строки к значению переменной имя пере- менной следует взять в фигурные скобки для отделения имени переменной от последующей строки (пример 2.23).

 

Пример 2.23. Экранирование имени переменной

 

$ VAR1=${VAR1}ZZ

$ echo $VAR1 Bolshoy Privet!ZZ

 

Для получения списка всех переменных, определенных в текущей оболочке, следует использовать команду set без аргументов. Если вы хотите уничто- жить переменную, то для этого достаточно выполнить команду unset, указав в качестве ее аргумента имя переменной.

Переменные оболочки доступны только в той оболочке, в которой они были описаны. Однако можно сделать переменную доступной для дочерних про- цессов этой оболочки, преобразовав ее в переменную окружения с помощью команды export (пример 2.24). Команда export записывает переменную в окружение оболочки, которое копируется в окружение дочерних процессов оболочки.


 

Пример 2.24. Экспортирование переменной

 

$ VAR1=Privet

$ export VAR1

$ pdksh

$ echo $VAR1 Privet

$ exit

 

Переменная VAR1 в примере 2.24 получила значение Privet, а затем экспор- тирована. Это сделало ее доступной в дочернем процессе — в порожденной оболочке pdksh.

Все переменные окружения могут быть получены с помощью команды env.

Окружение — это один из способов передачи информации процессов в сис- теме друг другу (табл. 2.2). Часто изменение значения какой-либо перемен- ной окружения приводит к изменению поведения программ. Например, если значение переменной HOME установлено неверно, то команда cd не будет воз- вращать вас в домашний каталог.

 

Таблица 2.2. Важнейшие переменные окружения

Переменная окружения Содержимое
HOME Путь к домашнему каталогу пользователя
LOGNAME и USER Имя пользователя
MAIL Путь к почтовому ящику пользователя
PATH Путь поиска исполняемых файлов
PS1 Вид приглашения оболочки
PWD Имя текущего каталога
OLDPWD Имя предыдущего каталога
SHELL Оболочка, указанная в учетной записи
TERM Тип терминала
LANG Тип локализации (локаль)
HOSTNAME Имя хоста
SHLVL Номер оболочки (при входе в сеанс — 1, для дочерней — 2 и т. д.)

Переменная окружения PS1 определяет вид приглашения оболочки (при- мер 2.25). Вид приглашения кодируется специальными символами. Символ \u устанавливает вывод имени пользователя. Символ \W устанавливает вывод имени текущего каталога, а символ \h отображает в строке приглашения Bash имя хоста. В Bash существуют также и другие специальные символы для переменной PS1. Они описаны в документации на Bash.

 

Пример 2.25. Переменная окружения PS1

 

[user1@work tmp]$ echo $PS1 [\u@\h \W]\$

 

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

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

/etc/profile, а настройки, специфичные для конкретных пользователей, хранятся в одном из файлов домашнего каталога пользователя: либо в ~/.bash_profile, либо ~/.bash_login, либо ~/.profile. Эти файлы выполняются автоматически при каждом входе в сеанс. При запуске оболочки Bash из командной строки выполняется файл профиля ~/.bashrc.

Подробнее о файлах профиля будет рассказано далее.

 








Дата добавления: 2015-06-12; просмотров: 803;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.