Разница между определением переменных Bash с и без export
Мы определяем переменную с помощью export, чтобы сделать ее доступной для всех подпроцессов (или дочерних процессов).
export variable_name=value
Переменная доступна для любого подпроцесса, который вы запускаете из этого процесса оболочки.
Если вы определяете переменную без экспорта, как показано ниже:
variable_name=value
Переменная ограничена оболочкой и недоступна для любого другого подпроцесса.
Вы можете использовать это для временных и/или циклических переменных.
Позвольте мне показать вам пример, чтобы вы могли лучше понять применение этих вариантов.
$ itsecforu="Welcome to www.itsecforu.ru!"
$ echo $itsecforu
Будет отображено значение переменной itsecforu.ru:
Welcome to www.itsecforu.ru!
Теперь запустите новый сеанс оболочки Bash, выполнив следующую команду:
$ bash
$ echo $itsecforu
Давайте снова определим ту же переменную с опцией экспорта:
$ export itsecforu="Welcome to www.itsecforu.ru!"
$ echo $itsecforu
Welcome to www.itsecforu.ru!
$ bash
Попробуйте еще раз отобразить значение переменной:
$ echo $itsecforu