Шпаргалки / Объяснение

Шпаргалка: различать переменную shell и окружение программы

Проверьте значение и факт установки переменной, передайте параметр дочерней программе и не раскрывайте всё окружение при диагностике.

Начальный6 минОбщие принципы LinuxGNU Coreutils · documented stable optionsBash · pipeline semantics

Когда открыть эту шпаргалку

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

Выбор команды

Имя DEMO_MODE выбрано для учебной настройки. Для реальной диагностики проверяйте только нужную переменную: окружение может содержать чувствительные значения.

Что выяснитьКоманда или выражениеКак читать результат
Напечатать безопасно при unsetprintf '%s\n' "${DEMO_MODE-}"Пустой результат ещё не различает unset и пустую строку.
Проверить наличие[[ -v DEMO_MODE ]]Bash возвращает статус, без вывода значения.
Присвоить только в shellDEMO_MODE=readНаследование зависит от атрибута export.
Передать одной программеDEMO_MODE=read command-nameВременное назначение для запуска, без изменения родителя.
Резерв при unset или empty${DEMO_MODE:-read}Двоеточие включает проверку пустого значения.

Короткая последовательность

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

Локальная Linux-система
DEMO_MODE=read bash -c 'printf "child=%s\n" "$DEMO_MODE"'

Проверка вывода

Дочерняя программа печатает child=read. Значение родительской переменной этим запуском не устанавливается. Если нужно отличить отсутствие от пустоты, используйте проверку наличия, а не только визуальное сравнение напечатанной строки.

Границы применения

Не выводите env целиком в публичный журнал или переписку. Переменная окружения не является защищённым хранилищем секрета. Сложные настройки процесса также могут поступать из файлов, аргументов и менеджера служб; одна переменная не объясняет всё поведение.

Технические источники

Использованы для проверки поведения. Объяснения и учебные сценарии созданы для проекта.

  • Руководство bash(1)
  • Руководство environ(7)

Проверка текста: 2026-09-11. Нативное исполнение на всей матрице дистрибутивов ещё не подтверждено.

Примеры для собственной Linux-системы с Bash и указанными утилитами. Наличие пакетов и набор опций проверьте в установленной версии; браузерный терминал поддерживает только своё подмножество.

От материала к практике

Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.

Поиск по Linux

Поиск локальный. ↑ ↓ — перейти к результату, Enter — открыть.

Навигация