Переменные среды окружения в Linux: различия между версиями
Перейти к навигации
Перейти к поиску
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
| Строка 12: | Строка 12: | ||
# назначение переменной статуса экспортируемой | # назначение переменной статуса экспортируемой | ||
| − | # при создании дочернего процесса, в его контексте | + | # при создании дочернего процесса, в его контексте будут создаваться новые независимые копии экспортируемых переменных родительского процесса |
| + | # по умолчанию, переменные родительского процесса не копируются в контекст дочернего процесса | ||
export <переменная> [= <значение>] | export <переменная> [= <значение>] | ||
</pre> | </pre> | ||
Версия 00:50, 17 октября 2025
Работа с переменными
# определение переменной (создание)
my_var=some text
# отмена определения переменной (удаление)
my_var=
# подстановка значения переменной
echo $my_var
echo ${my_var}
# назначение переменной статуса экспортируемой
# при создании дочернего процесса, в его контексте будут создаваться новые независимые копии экспортируемых переменных родительского процесса
# по умолчанию, переменные родительского процесса не копируются в контекст дочернего процесса
export <переменная> [= <значение>]
При работе с переменными среды окружения важно понимать следующее:
- Переменные среды окружения не являются глобальными объектами операционной системы, каждый процесс имеет свой набор переменных. Изменение значения переменной в одном процессе не влечет за собой изменение значения в другом, даже если он является дочерним.
- При вызове дочернего процесса, операционная система копирует все переменные среды окружения родительского процесса в дочерний процесс
- В процессе командного интерпретатора переменные среды окружения создаются командой export. Не экспортированные переменные не являются переменными среды окружения.
# по умолчанию дочерние процессы не наследуют переменных родительского процесса # чтобы установить наследование переменной дочерними процессами, ее необходимо экспортировать export <переменная> [= <значение>] # способы запуска скрипта, порождающие дочерний процесс шел # все определения переменных и функций в родительский процесс не передаются ./myscript.sh /bin/bash myscript.sh # способы запуска скрипта текущим процессом шела # все определения переменных и функций сохраняются в текущем шеле . myscript.sh source myscript.sh