![使用 .sh 文件导出环境变量](https://linux22.com/image/1147711/%E4%BD%BF%E7%94%A8%20.sh%20%E6%96%87%E4%BB%B6%E5%AF%BC%E5%87%BA%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F.png)
所以我创建了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 读取并执行命令。