🐧 Разница между определением переменных Bash с export и без |

🐧 Разница между определением переменных Bash с export и без

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

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

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

export variable_name=value

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

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

variable_name=value

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

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

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

Давайте определим переменную с именем «itsecforu» без «экспорта», как показано ниже:
$ itsecforu="Welcome to www.itsecforu.ru!"
Теперь отобразим значение с помощью команды «echo»:
$ echo $itsecforu

Будет отображено значение переменной itsecforu.ru:

Welcome to www.itsecforu.ru!

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

$ bash
Затем попробуйте отобразить значение переменной itsecforu с помощью команды «echo»:
$ echo $itsecforu
Видите?
Система ничего не возвращает!
Вы видите только пустой вывод.
Следовательно, доказано, что когда мы определяем переменную без экспорта, она не будет доступна дочерним процессам.

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

$ export itsecforu="Welcome to www.itsecforu.ru!"
Выведем значение переменной:
$ echo $itsecforu
Пример вывода:
Welcome to www.itsecforu.ru!
Начнем новый сеанс оболочки:
$ bash

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

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

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий