Переменные среды окружения в Linux
Перейти к навигации
Перейти к поиску
При работе с переменными среды окружения важно понимать следующее:
- Переменные среды окружения не являются глобальными объектами операционной системы, каждый процесс имеет свой набор переменных. Изменение значения переменной в одном процессе не влечет за собой изменение значения в другом, даже если он является дочерним.
- При вызове дочернего процесса, операционная система копирует все переменные среды окружения родительского процесса в дочерний процесс
- В процессе командного интерпретатора переменные среды окружения создаются командой export. Не экспортированные переменные не являются переменными среды окружения.
# по умолчанию дочерние процессы не наследуют переменных родительского процесса # чтобы установить наследование переменной дочерними процессами, ее необходимо экспортировать export <переменная> [= <значение>] # способы запуска скрипта, порождающие дочерний процесс шел # все определения переменных и функций в родительский процесс не передаются ./myscript.sh /bin/bash myscript.sh # способы запуска скрипта текущим процессом шела # все определения переменных и функций сохраняются в текущем шеле . myscript.sh source myscript.sh