Литмир - Электронная Библиотека

$ 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, существенное затруднение представляет экспорт переменных в дочерние процессы. Теперь, после рассмотрения основных принципов работы с переменными среды, перейдем к

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

50
{"b":"273485","o":1}