我正在尝试让我的系统自动加载包含一些环境变量的文件,以便在我的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
我试过看这个答案,但我似乎无法看到我做错了什么
答案 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