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

Guj*_*ana 2 environment-variables sh 16.04

所以我创建了这样的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
Run Code Online (Sandbox Code Playgroud)

之后我运行此命令以将文件变为可执行文件:

$ chmod +x setup.sh
Run Code Online (Sandbox Code Playgroud)

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

$ . /setup.sh
$ .setup.sh
$ bash setup.sh
Run Code Online (Sandbox Code Playgroud)

但是他们都没有工作,因为我再次检查变量 likemongo_connection和其他人仍然是空的。知道出了什么问题还是我错过了什么?

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

Rav*_*ina 7

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

. setup.sh
Run Code Online (Sandbox Code Playgroud)

或者

source setup.sh
Run Code Online (Sandbox Code Playgroud)

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

更多解释,help source

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