我是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打印了一些输出。
答案 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
等),但在没有参数的情况下运行时,它会列出设置变量。请注意,并非每个创建的变量都是导出的环境变量。