我试图让 bash 脚本创建一个变量,并让该变量保留在终端中,直到终端关闭(不是永久关闭)。我以为export
这就是我所需要的,但它不起作用。
#!/bin/bash
export VARIABLE='this is a test'
然后运行脚本:
$ ./test.sh
然后在同一个终端中:
$ echo "$VARIABLE"
但它会产生空白响应。
答案1
发生了什么
您启动一个新进程,设置环境变量(在进程中),然后退出该进程。变量消失了。
该怎么办
获取 bash 脚本,但不要执行它。例如其中之一
source ./test.sh
. ./test.sh
答案2
当您运行脚本时,您将创建设置变量的子 shell。脚本执行结束后,变量将被销毁。如果您想在当前 shell 中使用它,请按以下方式执行脚本:
. ./test.sh
答案3
除了source
(或.
) 之外,您可能还需要使用 shell 函数。
尝试一下这个:
test_sh() {
export VARIABLE='this is a test'
...
}
测试:
printf "VARIABLE=%s\n" "${VARIABLE}"
VARIABLE=
。
test_sh
printf "VARIABLE=%s\n" "${VARIABLE}
VARIABLE=this is a test