Что делает "экспорт"?
Я никогда не понимаю, что делает "экспорт". Например, в чем разница между этими двумя?
PYTHONPATH=/home/myaccount/ & export PYTHONPATHа такжеPYTHONPATH=/home/myaccount/
Один с экспортом, а другой без.
2 ответа
Решение
Если вы не экспортируете, то переменная среды будет видна только локально. Экспорт делает их доступными для других программ и оболочек, которые вы можете запустить (из этой оболочки).
"Экспорт" переменной в оболочке делает ее доступной для всех подоболочек и процессов, созданных этой оболочкой.
Он не делает его доступным везде в системе, только процессами, созданными из этой оболочки.
Вот пример, который вы можете попробовать доказать.
("set" перечислит все переменные, установленные в терминале)
$ ZZZ=test
$ bash # this runs bash in bash, you can also type 'xterm' to see it work there too.
$ set |grep ZZZ # You will not see ZZZ=test
$ exit # Lets get out of the subshell and try export!
$ export ZZZ
$ bash
$ set |grep ZZZ # and there we go! our variable is set in the subshell/process.
Вы можете открыть другой терминал и увидеть, что он там не установлен.