$ IFS=<space><tab>; export IFS
где значения <space><tab> задают использование в качестве разделителей полей символов пробела и табуляции.
Переменная LOGNAME
Переменная содержит регистрационное имя пользователя. Значение этой переменной устанавливается по умолчанию. Если этого не случилось, значение можно присвоить с помощью команды
$ LOGNAME=`whoami` ; export LOGNAME
$ echo $LOGNAME
dave
Переменная MAIL
Переменная mail хранит имя пути доступа и имя файла для вашего почтового ящика. По умолчанию ее значение /var/spool/mail/<регистрационное имя>. Интерпретатор shell периодически проверяет почтовый ящик на предмет наличия новых сообщений. Если пользователь получает электронное сообщение, он узнает об этом из командной строки. Если к почтовому ящику имеется другой путь, установите его с помощью переменной mail:
$ MAIL=/usr/mail/dave; export MAIL
Переменная MAILCHECK
Значение переменной mailcheck задается по умолчанию таким образом, чтобы наличие новой электронной почты проверялось каждые 60 секунд. Если электронную почту следует запрашивать реже, допустим каждые 2 минуты, примените команду:
$ MAILCHECK=120; export MAILCHECK
Переменная MAILPATH
Применяйте переменную mailpath, если вы располагаете более чем одним почтовым ящиком. При установке значения этой переменной перекрывается значение переменной mail:
$ MAILPATH=/var/apool/dave:/var/epool/admin; export MAILPATH
В данном примере переменная mail проверяет два почтовых ящика — dave и admin.
Переменная PATH
Переменная path хранит сведения о каталогах, где находятся выполняемые команды или сценарии. Важно, чтобы эта последовательность указывалась правильно, поскольку при обращении к этой переменной существенно сокращается время выполнения команды или сценария. Например, если в каком‑либо каталоге нет заданной команды, то не следует его просматривать. В общем случае лучше сначала задать каталог НОМЕ, за которым будет следовать перечень каталогов. Перечень включает каталоги, отсортированные по частоте применения. Сначала указываются наиболее часто применяемые каталоги, а затем те из них, которые применяются реже всего. Если нужно найти текущий рабочий каталог, то независимо от места его нахождения используйте точку. Каждый каталог отделяется двоеточием. Рассмотрим пример.
$ PATH=$HOME/bin: . :/bin:/usr/bin; export PATH
Согласно приведенному примеру, сначала производится поиск в каталоге НОМЕ/ bin, затем — в текущем каталоге, каталоге /bin и в каталоге /usr/bin.
Значение переменной path для системных каталогов задается в файле /etc/profile. Чтобы воспользоваться переменной path, определяя собственный вариант переменной path, достаточно в конце указать точку с запятой (;}.
$ PATH=$PATH:/$HOME/bin:. ; export PATH
В данном случае используется переменная path, определенная в файле /etc/profile, а также указан каталог $HOME/bin и текущий каталог. В общем случае нежелательно использовать текущий каталог при записи первого пути поиска. Если допустить подобное, то текущий каталог станет доступным и для других пользователей.
Переменная P$1
Основная командная строка включает символ приглашения интерпретатора shell. По умолчанию для основной командной строки используется символ #, а для любой другой командной строки применяется символ $. В командной строке можно использовать любые символы. Ниже приводятся два примера.
$ P$1="star trek:"; export P$1
star trek:
$ P$1=" ->" ; export P$1
->
Переменная PS2
Значение этой переменной задает вид вторичной командной строки. По умолчанию этот тип командной строки определяется символом >. Подобная командная
строка используется при выполнении многострочной команды или в случае, когда размер команды превышает длину строки.
$ PS2="@:"; export PS2
$ for loop in *
@:do
@:echo $LOOP
Переменная SHELL
Переменная shell включает сведения об интерпретаторе shell, заданном по умолчанию. Интерпретатор команд обычно указан в файле /etc/passwd. Это значение нельзя отменить, даже если приходится использовать другой интерпретатор команд.
$ echo $SHELL
/bin/sh
Переменная TERMINFO
Переменная, определяющая инициализацию терминала, хранит сведения о местонахождении файлов конфигурации терминала. Обычно эти файлы находятся либо в каталоге /usr/lib/terminfo, либо в каталоге /usr/share/terminfo.
$ TERMIHFO=/uer/lib/terminfo; export TERMIHFO
Переменная TERM
Переменная term представляет тип терминала. Эта переменная служит для указания типа управляющих последовательностей, необходимых для правильного функционирования экрана и клавиатуры. Самыми распространенными типами терминалов являются vt100, vt220, vt220-8, wyse и т. д.
$ TERM=vt100; export TERM
Переменная TZ
Эта переменная позволяет определить часовой пояс. Значение переменной TZ устанавливает администратор. Если для интерпретатора shell потребуется изменить значение этой переменной, обратите внимание на следующие примеры:
$ echo $TZ
GMT2EDT
В данном случае возвращается значение, которое свидетельствует о том, что отсчет времени происходит по Гринвичу (Greenwich Mean Time) (временное смещение относительно GMT составляет 0 часов) в диапазоне летнего времени (Eastern Daylight Saving).
14.3.5. Другие переменные среды
Для переменных среды резервируются и другие названия; эти имена используются в иных приложениях. Ниже приводятся наиболее распространенные имена. Не забывайте, что значения для этих переменных не устанавливаются; их задает сам пользователь.
Переменная EDITOR
Присвойте этой переменной название предпочитаемого вами текстового редактора.
$ EDITOR=vi; export EDITOR
Переменная PWD
Эта переменная представляет имя пути доступа для текущего каталога. Обычно
значение переменной изменяется всякий раз при выполнении команды cd.
Переменная PAGER
Данная переменная хранит сведения о командах программы постраничной разбивки. К подобным командам можно отнести, например, pg, more. Система проверяет значение этой переменной, когда пользователь выполняет просмотр страниц man.
$ PAGER='pg -f -p%d'; export PAGER
Переменная MANPATH
Представляет каталоги, которые включают страницы справочной программы man. Имя каждого каталога отделяется двоеточием.
$ MANPATH=/usr/apps/man:/usr/local/man; export MANPATH
Переменная LPDEST или переменная PRINTER
Эта переменная представляет имя принтера, заданного по умолчанию. При выводе на печать сохраняется имя принтера, заданное пользователем.
$ LPDEST=hp3si_systems
14.3.6. Применение команды set
Экспорт переменных среды можно задать при установке этих переменных в файле $HOME .profile. Воспользуйтесь командой set с параметром " -a" в виде "set -а". Это означает, что выполняется экспорт всех переменных. Не применяйте этот метод при работе с файлом /etc/profile. Данный метод применим только при работе с файлом $HOME/.profile.
$ pg .profile
#.profile
set -a
MAIL=/usr/mail/${LOGNAME:?}
PATH=$PATH:$HOME:bin
#
EDITOR=vi
TERM vt220
ADMIN=/usr/adm
P$1="`hostname` >>"
14.3.7. Экспорт переменных в дочерние процессы
Для тех, кто только начинает работать с интерпретатором shell, существенное затруднение представляет экспорт переменных в дочерние процессы. Теперь, после рассмотрения основных принципов работы с переменными среды, перейдем к
выполнению практических задач. Ниже приводится пример, сценария, который вызывает другой сценарий. Вызываемый сценарий фактически и является дочерним процессом.