Шрифт:
Переменные среды можно устанавливать в командной строке. Однако эти значения не сохраняются после выхода из системы. Поэтому переменные среды удобно инициализировать в пользовательском файле .profile. Системный администратор
может установить некоторые переменные среды в файле /etc/profile. Поскольку переменные размещаются в профильных файлах, они инициализируются при регистрации в системе.
Обычно при обозначении переменных среды используются прописные буквы. Чтобы переменная была доступна всем процессам, достаточно применить команду export. Присваивание значений переменным среды проходит так же, как и в случае с переменными интерпретатора shell.
14.3.1. Присваивание значений переменным среды
Для присваивания значений переменным среды применяется команда:
VARIABLE_NAME=значение; export VARIABLE_NAME
Точка с запятой между двумя командами выступает в роли разделителя команд. К аналогичному результату можно прийти следующим образом:
VARIABLE_NAME = значение export VARIABLE_NAME
14.3.2. Отображение значений переменных среды
Отображение значений переменных среды выполняется так же, как и в случае с переменными интерпретатора shell. Ниже приведено несколько примеров.
$ CONSOLE=tty1; export CONSOLE
$ echo $CONSOLE
tty1
$ MYAPPS=/usr/local/application; export MYAPPS
$ echo $MYAPPS /usr/local/application
Чтобы просмотреть глобально определенные переменные среды, достаточно воспользоваться командой env.
$ env
HISTSIZE=1000
HOSTNAME=localhost.localdomain
LOGNAME=dave
MAIL=/var/spool/mail/root
TERM=vt100
HOSTTYPE=i386
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/XllR6/bin:/root/bin:
CONSOLE=tty1
HOME=/home/dave
ASD=sdf
SHELL=/bin/sh
P$1=$
USER=dave
14.3.3. Удаление значений переменных среды
Чтобы удалить значение переменной, следует применить команду unset.
$ unset MYAPPS $ echo $MYAPPS
$
14.3.4. Встроенные переменные интерпретатора shell
Интерпретатор Bourne shell располагает именами, которые зарезервированы для переменных среды. Эти названия переменных нельзя использовать иначе. Обычно они содержатся в файле /etc/profile. Однако так бывает не всегда, поэтому пользователь может самостоятельно устанавливать значения этих переменных. Ниже приводится перечень переменных, встроенных в интерпретатор shell.
Переменная CDPATH
Переменная определяет выбор альтернативных каталогов, поэтому содержит ряд имен путей, разделенных двоеточием. Эта переменная применяется совместно с командой cd. Если значение переменной CDPATH установлено на момент выполнения команды cd, оно используется для выбора нового рабочего каталога. Если нужный каталог найден, он становится новым рабочим каталогом. Ниже приводится соответствующий пример,
$ CDPATH=/home/dave/bin:/usr/local/apps; export CDPATH
Теперь, обратим внимание на следующую команду:
$ cd apps
Команда cd будет выполнять поиск среди каталогов, заданных с помощью переменной CDPATH. Если нужный каталог найден, именно он становится текущим рабочим каталогом.
Переменная EXINIT
При работе с редактором vi переменная EXINIT предоставляет опции для инициализации этого редактора. Например, для установки нумерации всех строк и шага табуляции, равного 10 пробелам, примените следующую команду:
$ EXINIT=='set nu tab=10'; export EXINIT
Переменная HOME
Каталог HOME обычно указывается в файле passwd, во втором поле от конца файла. Именно в этом каталоге хранятся все персональные файлы пользователя. Если переменная установлена, для перехода в каталог НОМЕ можно воспользоваться клавишей быстрого доступа, соответствующей команде cd.
$ HOME=/home/dave; export HOME
$ pwd
$ /usr/local
$ cd
$ pwd
$ /home/dave
Можно также применить команду:
$ cd $НОНЕ
Переменная IFS
Переменная ifs применяется интерпретатором команд в качестве заданного по умолчанию разделителя полей. Внутренний разделитель полей может устанавливаться произвольным образом. По умолчанию разделителем полей служит пробел, символ новой строки или символ табуляции. Переменную ifs удобно использовать при разделении полей в файлах или переменных. Путь, включающий множество каталогов, более удобен для просмотра, если назначить переменной ifs двоеточие и вывести на экран значение переменной path.