我试图理解 export命令的用法。
export
我试过使用 man export,但是没有这个命令的使用手册。
man export
有人能帮我理解一下在 UNIX 中使用 export吗?
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命令。
pico
export是 bash外壳和其他 Bourne shell 变体的内置命令。它用于标记一个 shell 变量,以便导出到子进程。
bash
执行程序时,子程序从父程序继承其环境变量。例如,如果父代中的 $HOME被设置为 /root,那么子代的 $HOME变量也被设置为 /root。
$HOME
/root
这只适用于标记为导出的环境变量
$ FOO="bar"
该变量在子进程中不可见,除非导出它:
$ export FOO
您可以在 bash 中将这两个语句合并为一个语句(但不能在老式 sh 中使用) :
$ export FOO="bar"
下面是一个快速示例,显示了导出变量和非导出变量之间的区别。为了理解发生了什么,我们知道 sh -c创建了一个子 shell 进程,它继承了父 shell 的环境。
sh -c
$ FOO=bar $ sh -c 'echo $FOO' $ export FOO $ sh -c 'echo $FOO' bar
注意: 要获得 shell 内置命令的帮助,请使用 help export。Shell 内置的命令是 Shell 的一部分,而不是像 /bin/ls这样的独立可执行文件。
help export
/bin/ls