在Unix中导出命令

时间:2013-03-28 18:13:14

标签: unix export

我是Unix的新手,我知道export命令可用于创建会话变量,但下面命令的目的是什么:

bash-3.2$ export $TEST
declare -x PWD="/home/username"
declare -x SHELL="/bin/bash"
declare -x SSH_TTY="/dev/pts/4"
declare -x USER="username"

请帮助我理解这个命令。我没有任何名称为TEST的变量,但是当我给出这个命令时,shell打印了一些输出。

1 个答案:

答案 0 :(得分:2)

shell将不存在的变量$TEST扩展为空字符串,然后运行没有参数的命令export。执行此操作时,shell将列出导出的环境变量。

如果要导出空变量TEST,您应该编写以下任何一个:

export TEST
export TEST=
export TEST=''
export TEST=""

(在这种情况下,还有其他方法可以达到相同的效果,例如export TEST=$TEST或更多或更少,export TEST="$TEST",但通常缩写为export TEST 。)

输出中的详细declare -x表示法旨在允许您将输出写入文件,然后使用.(点)或source命令重新加载环境。不同的壳以不同的方式呈现输出,并且不一定是可重复使用的。

set命令类似(但更复杂)。它可用于设置shell选项,设置位置参数($1$2等),但在没有参数的情况下运行时,它会列出设置变量。请注意,并非每个创建的变量都是导出的环境变量。