[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]

Руководство пользователя: Операционная система и устройства


Переменные среды в оболочке C

Некоторые переменные в оболочке C имеют специальное значение. Из этих переменных argv, cwd, home, path, prompt, shell и status всегда задаются средой. Для всех перечисленных переменных, кроме cwd и status, установка выполняется только один раз при инициализации оболочки. Затем эти переменные сохраняют свои значения, если только вы не измените их явно.

Команда csh копирует переменные среды USER, TERM, HOME и PATH соответственно в переменные user, term, home и path оболочки csh. При любом изменении переменных оболочки выполняется обратное копирование их значений в переменные среды. Задавать переменную path где-либо, кроме файла .cshrc, нельзя, поскольку оболочка csh автоматически импортирует значение переменной path из среды и экспортирует в среду при каждом изменении.

Следующие переменные среды имеют особое значение:

argv Содержит аргументы, переданные сценарию оболочки. Из этой переменной подставляются позиционные параметры.
cdpath Содержит список альтернативных каталогов для поиска подкаталогов, указанных в аргументах команд chdir и cd.
cwd Содержит полное имя текущего каталога.
echo Устанавливается флагом -x командной строки; выводит на экран каждую команду (вместе с аргументами) перед ее выполнением. Для внешних команд перед этим выполняются все подстановки. Встроенные команды выводятся на экран до подстановок, поскольку эти подстановки затем могут быть выборочными.
histchars Задает строку, переопределяющую символы подстановки хронологии. Первый символ этой строки будет применяться в качестве символа подстановки хронологии вместо символа по умолчанию, !. Второй символ этой строки заменяет символ ^ быстрой подстановки.

Примечание: Указание в переменной histchars символов, применяемых в именах команд и файлов, может привести к нежелательным подстановкам.
history Содержит численное значение, управляющее размером списка хронологии. Сохраняются все команды в указанном диапазоне. Слишком большое значение переменной history может привести к тому, что оболочка займет слишком много памяти. Независимо от значения этой переменной, оболочка C всегда сохраняет в списке хронологии последнюю команду.
home Содержит имя вашего домашнего каталога, полученное из соответствующей переменной среды. Эта переменная подставляется вместо тильды ~ в именах файлов.
ignoreeof Указывает оболочке игнорировать символ конца файла в данных, получаемых от рабочих станций. Это предотвращает случайное закрытие оболочки после чтения символа конца файла (Ctrl-D).
mail Задает файлы, в которых оболочка будет проверять почту. Проверка почты выполняется при выводе приглашения после завершения команды, если прошел определенный интервал времени. Если время последнего обращения к одному из указанных файлов становится меньше времени последней записи, оболочка показывает сообщение Почта в файле имя_файла .
  Если первое слово в значении переменной mail - число, оно задает интервал проверки почты (в секундах); значение по умолчанию - 600 (10 минут). Если указано несколько файлов, и в одном из них обнаруживается новая почта, оболочка показывает сообщение Новая почта в файлеимя_файла.
noclobber Устанавливает ограничения на перенаправление вывода, позволяющие быть уверенным в том, что файлы не будут случайно уничтожены или изменены.
noglob Отменяет операции подстановки в именах файлов. Эта возможность применяется в сценариях оболочки, не работающих с именами файлов, либо когда получен список имен файлов, дальнейшая подстановка в котором нежелательна.
nonomatch Указывает, что не следует показывать сообщение об ошибке, если в результате подстановки получилось имя файла, не соответствующее ни одному из существующих файлов; вместо этого возвращается простой шаблон. В любом случае, неправильные простые шаблоны приводят к ошибке.
notify Указывает оболочке, что отправлять уведомления об изменении состояния заданий следует асинхронно. По умолчанию эта информация показывается перед выводом приглашения оболочки.
path Задает каталоги, в которых выполняется поиск введенных команд. Пустое слово обозначает текущий каталог. Если переменная path не задана, при вводе команд необходимо указывать полные имена. Путь поиска по умолчанию (из файла /etc/environment, применяемого командой login), следующий:

/usr/bin /etc /usr/sbin /usr/ucb /usr/bin/X11 /sbin
  В обычном режиме оболочка, при запуске которой не был указан ни флаг -c, ни флаг -t, после чтения файла .cshrc и при каждом изменении переменной path создает хэш-таблицу содержимого каталогов, перечисленных в переменной path. Если во время работы оболочки в каталоги поиска были добавлены новые команды, необходимо ввести команду rehash, иначе эти команды не будут найдены.
prompt Задает строку, показываемую перед каждым чтением очередной команды с интерактивной рабочей станции. Если в этой строке встречается символ ! , он заменяется текущим номером события. Если символ ! находится в одинарных или двойных кавычках, перед ним необходимо указать символ \ (обратная косая черта). По умолчанию для пользователей без прав доступа root выводится приглашение %. Для пользователя root выводится приглашение #.
savehist Содержит численное значение, управляющее числом записей в списке хронологии, сохраняемых при выходе из системы в файле ~/.history. Будут сохранены все команды в указанном диапазоне. При запуске оболочка загружает файл ~/.history в список хронологии, таким образом сохраняя хронологию предыдущего сеанса работы в системе. Увеличение значения переменной savehist замедляет запуск оболочки.
shell Задает файл, в котором находится оболочка C. Это значение применяется при запуске новых оболочек для файлов, выполнение которых разрешено, но которые не могут быть выполнены системой (сценариев оболочки). В эту переменную записывается полное имя файла оболочки C.
status Содержит состояние возврата из последней запущенной команды. Если команда завершилась аварийно, к состоянию добавляется 0200. Встроенные команды, завершившиеся неудачно, возвращают состояние 1. Успешно выполненные встроенные команды возвращают значение 0.
time Управляет автоматическим определением времени выполнения команд. После каждой команды, выполнение которой заняло больше секунд CPU, чем указано в этой переменной (если она задана), показывается строка с информацией об использовании ресурсов. Дополнительная информация о формате вывода по умолчанию приведена в описании встроенной команды time.
verbose Эта переменная, устанавливаемая с помощью флага -v командной строки, включает вывод на экран всех слов каждой команды после подстановки хронологии.


[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]