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