В чем разница между объявлением переменной export VAR="VALUE" и VAR="VALUE" в bash?

05.10.2026
0
6
---

В bash (и других оболочках Unix) разница между командами export VAR="VALUE" и VAR="VALUE" связана с областью видимости переменной:

1. VAR="VALUE":
- Это обычное объявление переменной в текущей оболочке (сессии).
- Переменная VAR будет доступна только внутри текущей сессии, и не будет передаваться дочерним процессам, запущенным этой сессией.
- Например, если вы запустите новую команду или скрипт из текущей оболочки, VAR не будет доступна в этом дочернем процессе.

2. export VAR="VALUE":
- Команда export делает переменную VAR доступной для всех дочерних процессов текущей оболочки.
- То есть, VAR будет установлена и доступна не только в текущей сессии, но и во всех процессах, запущенных из этой сессии.
- Это полезно, когда необходимо передать значение переменной в другие программы или скрипты, запущенные из текущей оболочки.

Для примера

# Присвоение переменной без export
VAR="Hello"
bash -c 'echo $VAR'  # Ничего не выведет, так как VAR не экспортирована

# Присвоение переменной с export
export VAR="Hello"
bash -c 'echo $VAR'  # Выведет "Hello", так как VAR экспортирована

Таким образом, export используется для того, чтобы переменная была доступна в дочерних процессах, тогда как обычное присвоение без export ограничивает переменную только текущей сессией.

Понравиласть статья? Жми лайк или расскажи своим друзьям!
Теги к новости:
Bash, Linux, Ubuntu
Комментарии
Добавить комментарий
Добавление комментария
Ваше Имя:
Ваш E-Mail:
Это код:
Кликните на изображение чтобы обновить код, если он неразборчив
Введите сюда:
Похожие новости:
04.10.2026
Представлен новый релиз распределённой системы управления исходным кодом Git 2.56. В новую версию вошли 748 изменений, подготовленных при участии 104 разработчиков, в том числе 39 новых участников проекта. Исходный код Git распространяется под
20.09.2025
Идемпотентность в Ansible — это принцип, согласно которому выполнение плейбука (или задачи) несколько раз не приведет к изменениям в системе, если система уже находится в нужном состоянии. То есть, если состояние системы после первого применения
08.09.2025
Раньше в Linux использовался SysVinit: скрипты запускались последовательно, зависшие службы нельзя было нормально отследить, логов в едином месте не было. Systemd появился в 2010-м и решил все эти проблемы. Сегодня он используется почти во всех
04.10.2026
ClickHouse запускает приватное превью нового TimeSeries Engine и поддержки PromQL в ClickHouse Cloud. Теперь команды могут хранить метрики Prometheus непосредственно в ClickHouse и выполнять привычные запросы PromQL без необходимости переписывать
31.08.2025
Вертикальное масштабирование пода без перезапуска стало возможным начиная с Kubernetes v1.33. Если вы хотели выдать приложению (Pod в Kubernetes) больше памяти или CPU, его приходилось перезапускать.