我是 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 打印了一些输出。
shell 将不存在的变量扩展$TEST
为一个空字符串,然后运行export
不带参数的命令。当您这样做时,shell 会列出导出的环境变量。
如果您想导出一个空变量 TEST,您应该编写以下任何一种:
export TEST
export TEST=
export TEST=''
export TEST=""
(在这种情况下,还有其他方法可以达到相同的效果,例如export TEST=$TEST
or,或多或少地,export TEST="$TEST"
,但通常缩写为export TEST
。)
输出中的详细declare -x
符号旨在允许您将输出写入文件,然后使用.
(点)或source
命令重新加载环境。不同的 shell 以不同的方式呈现输出,并且不一定可重用。
该set
命令类似(但更复杂)。它可用于设置 shell 选项、设置位置参数($1
、$2
等),但是当不带参数运行时,它会列出设置的变量。请注意,并非创建的每个变量都是导出的环境变量。