Menu
Coddy logo textTech

Экспорт переменной

Часть раздела Основы путешествия по Terminal на Coddy — урок 63 из 82.

Когда вы устанавливаете переменную, такую как MY_NAME="Alice", она существует только в вашей текущей оболочке. Если вы запустите скрипт или другую программу, эта переменная не будет доступна для неё. Вот здесь и вступает в игру export.

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

export MY_NAME="Alice"

Вы также можете экспортировать существующую переменную:

MY_NAME="Alice"
export MY_NAME

Оба подхода дают одинаковый результат. Переменная становится частью окружения, которое передается любой команде, которую вы запускаете после этого.

Чтобы увидеть разницу, рассмотрите запуск скрипта, который пытается использовать $MY_NAME.

Без экспорта скрипт ничего не видит. С экспортом скрипт может получить доступ к значению.

Вот почему системные переменные, такие как PATH и HOME, экспортируются по умолчанию. Они должны быть доступны каждой программе, которую вы запускаете.

Вы можете проверить, что переменная экспортирована, проверив, появляется ли она в выводе env:

env | grep MY_NAME

Экспортированные переменные всё равно исчезают при закрытии терминала. Следующий урок объясняет, как сделать переменные постоянными между сессиями.

challenge icon

Задание

Легко

Экспортируйте переменную с именем PROJECT со значением terminal-course, затем проверьте, что она экспортирована, отфильтровав вывод env, чтобы показать только вашу новую переменную.

Вы можете сделать это в одной строке, используя export для установки и экспорта переменной одновременно, затем пропустив env через grep, чтобы найти её.

Ваш вывод должен быть:

PROJECT=terminal-course

Подсказка: Сначала выполните export PROJECT="terminal-course", затем используйте env | grep PROJECT, чтобы проверить, что она появляется в окружении.

Шпаргалка

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

export MY_NAME="Alice"

Вы также можете экспортировать существующую переменную:

MY_NAME="Alice"
export MY_NAME

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

Чтобы проверить, экспортирована ли переменная, посмотрите, появляется ли она в выводе env:

env | grep MY_NAME

Экспортированные переменные исчезают при закрытии терминала.

Попробуйте сами

Терминал
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы