Книга: Искусство программирования для Unix
10.4.1. Системные переменные окружения
10.4.1. Системные переменные окружения
Существует множество широко известных переменных окружения, значения которых программа может получить при запуске из оболочки Unix. Данные переменные (особенно НОМЕ
) часто требуется оценить до считывания локального файла профиля.
USER
Регистрационное имя учетной записи, под которым инициируется данный сеанс (BSD-соглашение).
LOGNAME
Регистрационное имя учетной записи, под которым инициируется данный сеанс (соглашение System V).
HOME
Начальный каталог пользователя, инициализирующего данный сеанс.
COLUMNS
Количество символьных столбцов управляющего терминала или окна эмулятора терминала.
LINES
Количество символьных строк управляющего терминала или окна эмулятора терминала.
SHELL
Имя командной оболочки данного пользователя (часто используется командами, создающими подоболочку).
PATH
Список каталогов, которые просматривает оболочка при поиске исполняемых команд, соответствующих заданному имени.
TERM
Тип терминала для консоли сеанса или окна эмулятора терминала (предварительные сведения представлены в учебном примере terminfo в главе 6). TERM
— переменная, специально используемая в таких программах для создания удаленных сеансов через сеть (таких как telnet и ssh), предполагается, что они передают и устанавливают значение данной переменной в удаленном сеансе.
(Данный список характерен для Unix-систем, однако он не является исчерпывающим.)
Переменная HOME
особенно важна, поскольку многие программы используют ее для поиска файлов профилей вызывающего пользователя (другие программы вызывают некоторые функции в динамической C-библиотеке для выяснения начального каталога вызывающего пользователя).
Следует отметить то, что некоторые или все данные системные переменные окружения могут не устанавливаться во время запуска программы, если программа запускается методом, отличным от создания подпроцесса в shell. В частности, демоны-слушатели какого-либо TCP/IP-сокета часто не имеют таких установленных переменных, а если имеют, то их значения едва ли будут полезны.
Наконец, следует отметить, что существует традиция (проиллюстрированная переменной PATH
) использования двоеточия в качестве разделителя, когда переменная окружения должна содержать несколько полей, особенно если данные поля можно интерпретировать как некоторые пути поиска. Заметим, что некоторые оболочки (особенно bash
и ksh
) всегда интерпретируют разделенные двоеточиями поля в переменной окружения как имена файлов. Это, в частности, означает, что символ ~
в таких полях преобразовывается в путь к начальному каталогу данного пользователя.
- 10.4.2. Пользовательские переменные окружения
- 10.4. Переменные окружения
- Переменные как щупальца
- Регистровые переменные
- Системные переменные ROWS_AFFECTED, GDSCODE, SQLCODE, TRANSACTIONJD, CONNECTIONJD
- Глава 2 Аргументы, опции и переменные окружения
- 2.4. Переменные окружения
- Использование переменной окружения ISC_PATH
- 1.2.3. Константы, переменные и типы
- Системные вызовы и драйверы устройств
- ГЛАВА 5. СИСТЕМНЫЕ ОПЕРАЦИИ ДЛЯ РАБОТЫ С ФАЙЛОВОЙ СИСТЕМОЙ
- Системные вызовы управления процессорной привязкой