我始终不明白“export”是干什么的。例如,这两个有什么区别?
PYTHONPATH=/home/myaccount/ & export PYTHONPATH
和PYTHONPATH=/home/myaccount/
一个有出口,另一个没有。
答案1
如果不导出,则环境变量将仅在本地可见。导出后,它们将可供您可能启动的其他程序和 shell(从该 shell)使用。
答案2
在 shell 中“导出”一个变量,使它可供由以下程序创建的所有子 shell 和进程使用:那壳。
确实如此不是使其在系统中的任何地方可用,仅由从该 shell 创建的进程可用。
这里有一个例子,您可以尝试证明这一点。
(“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.
您可以打开其他终端,并看到它不是但是设置在那里。