Введение
В предыдущих лабораторных работах мы рассматривали существующие переменные, например User. Теперь создадим собственные «стикеры».
Переменная — это имя, в котором хранится некоторый текст.
Однако после создания переменная становится локальной для текущей оболочки. Чтобы предоставить её другим программам, необходимо «экспортировать» переменную.
Различие между переменной оболочки и переменной окружения — одна из ключевых идей этого модуля. Не каждая переменная автоматически становится частью окружения, доступного дочерним процессам.
В этой лабораторной работе вы:
- создадите переменную
MYCAFE; - прочитаете её содержимое;
- «экспортируете» её;
- проверите её работу во второй оболочке.
Создайте переменную
Создадим переменную с именем MYCAFE и присвоим ей значение "espresso".
Создание переменной похоже на запись на стикере.
Выполните команду:
MYCAFE="espresso"
Важно: не ставьте пробелы вокруг знака =.
- Правильно:
MYCAFE="espresso" - Неправильно:
MYCAFE = "espresso"
Если использовать пробелы, оболочка воспримет MYCAFE как команду.
Это хороший пример того, как синтаксис оболочки зависит от пробелов. В оболочке пробелы служат не только для визуального форматирования: они часто разделяют слова и аргументы, имея при этом реальное значение.
Выведите переменную
Теперь убедитесь, что значение сохранено.
Чтобы получить значение переменной, используйте знак доллара $.
Выполните команду:
echo $MYCAFE
Результат:
espresso
Если не указать $, команда echo просто выведет слово «MYCAFE».
Экспортируйте переменную
Сейчас MYCAFE — локальная переменная. Это как заметка в вашем личном блокноте.
Чтобы предоставить её другим программам, необходимо экспортировать переменную. После этого она станет переменной окружения — словно вы разместили заметку на общем стенде.
Экспорт можно представить как указание оболочке: «Включай эту переменную при запуске дочерних программ». Без экспорта значение остаётся доступным только в текущей оболочке.
Выполните команду:
export MYCAFE
Теперь MYCAFE передаётся любой программе, которую вы запускаете из этой оболочки.
Проверьте переменную в дочерней оболочке
Проверим результат, запустив «дочернюю» оболочку.
- Запустите новый сеанс
bash:
bash
Теперь вы находитесь внутри нового процесса оболочки.
- Проверьте, доступна ли ему переменная
MYCAFE:
echo $MYCAFE
Результат:
espresso
Всё работает! Дочерняя оболочка унаследовала это значение.
Здесь ключевое слово — «наследование». Дочерние процессы обычно начинают работу с копией окружения родительского процесса, поэтому экспортированные переменные часто используют для передачи контекста сценариям и командам.
- Выйдите из дочерней оболочки и вернитесь в родительскую:
exit
Итоги
В этой лабораторной работе вы изучили жизненный цикл переменной:
- Создание:
MYCAFE="espresso"(без пробелов!) - Чтение:
echo $MYCAFE(не забудьте$) - Передача:
export MYCAFE(делает переменную доступной дочерним процессам)
Именно этот механизм система использует для настройки вашего окружения (PATH, USER и т. д.) ещё до вашего входа в систему!



