包含env vars的文件未加载

时间:2014-01-13 17:07:05

标签: macos bash environment-variables .bash-profile

我正在尝试让我的系统自动加载包含一些环境变量的文件,以便在我的rails项目中使用,而不是仅仅将它们导出到shell中,但我似乎无法让它工作。

我正在使用mac osx 10.6

这些是我遵循的步骤。

nano .bash_profile

export PATH=Users/Moshe/env_vars:$PATH

touch env_vars

nano env_vars

DEV_DB=TestDB
export DEV_DB

DEV_DB_HOST=12.34.56.78
export DEV_DB_HOST

exit

我重新打开shell并

printenv

但我没有看到我设置的变种

然而,当我Users/Moshe/env_vars

时,我确实在路径中看到echo $PATH

我试过看这个答案,但我似乎无法看到我做错了什么

Setting environment variables in OS X?

2 个答案:

答案 0 :(得分:1)

不会从$PATH上找到的文件中读取环境变量;在shell中键入命令时,会搜索$PATH以查找可执行文件

要加载变量,您需要“替换”文件:

# .bash_profile
source /Users/Moche/env_vars

(请注意,您还需要初始/以使文件名为绝对值。)

此外,由于您使用的是Ruby,因此您可能对使用dotenv gem感兴趣。 dotenv允许您在Rails项目的根目录中的.env文件中指定环境变量,并在启动时自动加载它们。这使得每个项目所需的变量保持接近代码,并使您的项目更具可移植性(例如,您可以使用它来部署在像Heroku这样的服务上)。如果它有任何敏感信息(例如密码),请确保您没有将.env提交到版本控制中!

答案 1 :(得分:1)

请勿使用exit关键字。将代码插入 .bash_profile ,或将其存储到特定文件中,例如 your_script.sh ,然后从 .bash_profile 调用,如下所示:

. your_script.sh