Shell позволяет определять
переменные, как и большинство языков программирования. Переменная - это
порция данных, которой дано имя.
=
'' ), вы сможете получить
это значение, добавив перед именем переменной символ ``$
'', как это
показано ниже
/home/larry# foo=``hello there''
Переменной foo присвоено
значение ``hello there
''. Теперь вы можете обратиться к этой переменной,
добавив перед именем символ ``$
''. Команда
/home/larry# echo $foo
hello there
/home/larry#
дает тот же самый результат, что и
/home/larry# echo ``hello there''
hello there
/home/larry#
Эти переменные являются внутренними для shell. Это означает, что только shell имеет доступ к этим переменным. Это может быть полезно для сценариев; если вам надо сохранить информацию о имени файла, вы, например, можете поместить его в переменную. Команда set может показать вам перечень всех определенных переменных shell.
Shell позволяет экспортировать
переменные в среду. Среда - это множество переменных, к которым могут
иметь доступ все выполняемые команды. Определив однажды переменную внутри shell
export
вы можете передать ее среде.
setenv
). Дополнительную
информацию можно найти в Руководстве по Tcsh.
Среда очень важна в системах UNIX. Она позволяет конфигурировать некоторые команды за счет установки переменных, о которых знают команды.
Вот небольшой пример. Переменная
среды PAGER
используется командой man. Она указывает команду, которая
используется в свою очередь командой man для просмотра Руководства на экране.
Если вы установите в качестве значения PAGER
имя другой команды,
то эта команда вместо будет обеспечивать просмотр вместо more (которая применялась
по умолчанию).
Присвойте PAGER
значение ``cat
''. Выдача на экран руководства будет вся разом,
а не поэкранно, как это делала команда more.
/home/larry# PAGER=cat
Теперь экспортируйте PAGER
в среду.
/home/larry# export PAGER
Попробуйте команду man
ls
. Руководство промелькнет по вашему экрану без (желательных) задержек.
Теперь, если присвоить PAGER
значение ``more
'', то для выдачи на экран будет использоваться
команда more.
/home/larry# PAGER=more
Обратим внимание на то,
что нам не надо заново использовать команду export
после изменения
значения PAGER
. Необходимо только раз экспортировать переменную;
любые изменения, которые будут происходить после этого, будут отражаться в среде.
Страницы Руководства для
конкретных команд содержат информацию о том, использует ли команда какие-то
переменные среды. Например, Руководство по команде man говорит о том, что для
определения режима выдачи страницы руководства на экран используется переменная
PAGER
. Некоторые команды совместно используют переменные среды,
например, многие команды используют переменную среды EDITOR
для
указания используемого редактора.
Переменные среды используются
также для сохранения важной информации о процедуре входа. Например переменная
HOME
содержит имя вашего домашнего каталога.
/home/larry/papers# echo $HOME /home/larry
Другая интересная переменная
среды - PS1
, которая определяет главную подсказки shell. Например,
/home/larry# PS1=``Your command, please: '' Your command, please:
Для переустановки подсказки
обратно в нормальное состояние (когда она показывает текущий рабочий каталог,
после которого следует значек ``#
''), выполните следующее:
Your command, please: PS1=``\w# '' /home/larry#
В Руководстве bash
есть подробное описание синтаксиса, используемого при установке подсказки.
2.13.2.1 Переменная среды PATH