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