Поиск по сайту:

Разница между определением переменных Bash с экспортом и без него

Я добавил эту строку export HISTCONTROL=ignoredups в файл ~/.bashrc, чтобы избежать дублирования записей в истории Bash на моем рабочем столе Linux. . Вы заметили, что я добавил к переменной HISTCONTROL префикс export? Знаете ли вы, для чего нужна опция "экспорт"? Если вам интересно, в чем разница между определением переменных bash с опцией экспорта и без нее, читайте дальше!

Разница между определением переменных Bash с экспортом и без него

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

export variable_name=value

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

Если вы определите переменную без export, как показано ниже,

variable_name=value

Переменная ограничена оболочкой и недоступна ни для одного другого подпроцесса. Вы можете использовать его для временных переменных и/или переменных цикла.

Позвольте мне показать вам пример, чтобы вы могли лучше понять его.

Позвольте мне определить переменную с именем "ostechnix" без "export", как показано ниже:

ostechnix="Welcome to ostechnix.com blog!"

Теперь отобразите значение с помощью команды «echo»:

echo $ostechnix

Он отобразит значение переменной ostechnix:

Welcome to ostechnix.com blog!

Теперь запустите новый сеанс оболочки Bash, выполнив следующую команду:

bash

Затем попробуйте отобразить значение переменной ostechnix с помощью команды echo:

echo $ostechnix

Определить переменную bash без экспорта

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

Давайте снова определим ту же переменную с опцией export:

export ostechnix="Welcome to ostechnix.com blog!"

Отобразите значение переменной:

echo $ostechnix

Пример вывода:

Welcome to ostechnix.com blog!

Запустите новый сеанс оболочки:

bash

Попробуйте еще раз отобразить значение переменной:

echo $ostechnix

Теперь он вернет значение.

Разница между определением переменных Bash с экспортом и без него

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

Статьи по данной тематике