Экспорт переменной
Часть раздела Основы путешествия по Terminal на Coddy — урок 63 из 82.
Когда вы устанавливаете переменную, такую как MY_NAME="Alice", она существует только в вашей текущей оболочке. Если вы запустите скрипт или другую программу, эта переменная не будет ей доступна. Здесь и пригодится export.
Команда export делает переменную доступной для любых дочерних процессов, то есть программы или скрипты, запущенные из вашего текущего оболочки (shell), смогут получить к ней доступ:
export MY_NAME="Alice"Вы также можете экспортировать существующую переменную:
MY_NAME="Alice"
export MY_NAMEОба подхода дают одинаковый результат. Переменная становится частью окружения, которое передается любой команде, запускаемой после этого.
Чтобы увидеть разницу, попробуйте запустить скрипт, который пытается использовать $MY_NAME.
Без export скрипт ничего не видит. С export скрипт может получить доступ к значению.
Вот почему системные переменные, такие как PATH и HOME, экспортируются по умолчанию. Они должны быть доступны каждой запускаемой вами программе.
Вы можете проверить, экспортирована ли переменная, убедившись, что она отображается в выводе команды env:
env | grep MY_NAMEЭкспортированные переменные всё равно исчезают, когда вы закрываете terminal. В следующем уроке рассказывается, как сделать так, чтобы переменные сохранялись между сессиями.
Задание
ЛегкоЭкспортируйте переменную с именем PROJECT со значением terminal-course, затем убедитесь, что она была экспортирована, отфильтровав вывод env, чтобы показать только вашу новую переменную.
Вы можете сделать это в одну строку, используя export для одновременного задания и экспорта переменной, а затем передав вывод env через конвейер в grep, чтобы найти её.
Ваш вывод должен быть следующим:
PROJECT=terminal-courseПодсказка: Сначала выполните
export PROJECT="terminal-course", затем используйтеenv | grep PROJECT, чтобы убедиться, что она появляется в окружении.
Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Каталоги
Создать каталогСкопировать каталогПереместить и переименовать каталогУдалить каталогИтог - Операции с каталогами7Содержимое файлов
Head и TailПодсчёт словКоманда sortКоманда uniqОсновы grepGrep с флагамиПовторение - Текстовый детектив10Проект анализатора логов
Обзор проектаПросмотр файла лога2Навигация
Вывод текущей рабочей директорииСписок файловСмена директорииАбсолютные и относительные путиДомашняя и корневая директорииИтог - Найди свой путь8Перенаправление
Стандартный выводПерезапись в файлДописывание в файлСтандартный вводСтандартная ошибкаПовторение - Сборщик логов11Права доступа
Понимание прав доступаЧтение прав доступаChmod с числамиChmod с символамиВладение файламиПовторение - Заблокируйте доступ14Проект скрипта резервного копирования
Обзор проектаПолучение пути к источнику3Файлы
Создать файлПрочитать файлСкопировать файлПереместить и переименовать файлУдалить файлПовторение - Операции с файлами6Символы подстановки и шаблоны
Звёздный символ подстановкиВопросительный символ подстановкиСкобочные символы подстановкиКомбинирование символов подстановкиПовторение - выборочные операции9Каналы
Что такое каналЦепочка двух командЦепочка нескольких командКанал с grepИтог - Конвейер данных