使用 .sh 文件导出环境变量

使用 .sh 文件导出环境变量

所以我创建了setup.sh这样的文件:

#!/bin/bash
export SP_TWITTER_KEY=adsfad
export SP_TWITTER_SECRET=aadsfadsf
export SP_TWITTER_ACCESSTOKEN=asdfasdfa
export SP_TWITTER_ACCESSSECRET=asdfasdfas

export mongo_connection=localhost

然后我运行这个命令以使该文件变为可执行文件:

$ chmod +x setup.sh

最后执行文件,以便导出我的所有环境变量。我尝试了几种方法,例如:

$ . /setup.sh
$ .setup.sh
$ bash setup.sh

但它们都不起作用,因为我再次检查了变量,发现mongo_connection其他变量仍然是空的。知道哪里出了问题吗?或者我遗漏了什么?

注意:我使用 tmux 来运行我的 shell 终端

答案1

无需对脚本进行任何更改,您可以简单地像这样运行:

. setup.sh

或者

source setup.sh

它将导致你的变量在当前 shell 中设置,否则 bash 将打开一个非交互式 shell,在其中运行你的命令,并在完成后关闭该 shell。

更多解释,请参见help source

source: source FILENAME
在当前 shell 中从文件执行命令。
在当前 shell 中从 FILENAME 读取并执行命令。

相关内容