UNIX 导出命令

我试图理解 export命令的用法。

我试过使用 man export,但是没有这个命令的使用手册。

有人能帮我理解一下在 UNIX 中使用 export吗?

225918 次浏览

Unix

命令 env、 set 和 printenv 显示所有环境变量及其值。Env 和 set 还用于设置环境变量,通常直接合并到 shell 中。Printenv 还可以通过给命令提供变量名作为唯一参数来打印单个变量。

在 Unix 中,也可以使用下列命令,但通常依赖于某个 shell。

export VARIABLE=value  # for Bourne, bash, and related shells
setenv VARIABLE value  # for csh and related shells

你可以在

export用于设置环境变量,例如:

export EDITOR=pico

将默认文本编辑器设置为 pico命令。

exportbash外壳和其他 Bourne shell 变体的内置命令。它用于标记一个 shell 变量,以便导出到子进程。

执行程序时,子程序从父程序继承其环境变量。例如,如果父代中的 $HOME被设置为 /root,那么子代的 $HOME变量也被设置为 /root

这只适用于标记为导出的环境变量

$ FOO="bar"

该变量在子进程中不可见,除非导出它:

$ export FOO

您可以在 bash 中将这两个语句合并为一个语句(但不能在老式 sh 中使用) :

$ export FOO="bar"

下面是一个快速示例,显示了导出变量和非导出变量之间的区别。为了理解发生了什么,我们知道 sh -c创建了一个子 shell 进程,它继承了父 shell 的环境。

$ FOO=bar
$ sh -c 'echo $FOO'


$ export FOO
$ sh -c 'echo $FOO'
bar

注意: 要获得 shell 内置命令的帮助,请使用 help export。Shell 内置的命令是 Shell 的一部分,而不是像 /bin/ls这样的独立可执行文件。