我正在尝试让我的系统自动加载一个包含一些环境变量的文件以在我的 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
我重新打开外壳并
printenv
但我没有看到我设置的变量
但是,当我echo $PATH
时,我确实看到它在路径Users/Moshe/env_vars
我试过看这个答案,但我似乎看不出我做错了什么
在 OS X 中设置环境变量?
不要使用exit
关键字。将代码插入.bash_profile,或将其存储到特定文件中,例如your_script.sh,然后从.bash_profile调用,如下所示:
. your_script.sh
环境变量不会从$PATH
上找到的文件读取;当您在 shell 中键入命令时,将搜索您的$PATH
以查找可执行文件。
要加载变量,您需要"源"文件:
# .bash_profile
source /Users/Moche/env_vars
(请注意,您还需要初始/
才能使文件名绝对化。
另外,由于您使用的是 Ruby,因此您可能对使用 dotenv gem 感兴趣。 dotenv 允许您在 Rails 项目根目录下的.env
文件中指定环境变量,并在启动时自动加载它们。这使每个项目所需的变量接近代码,并使项目更具可移植性(例如,您可以使用它部署在 Heroku 等服务上)。只要确保不要将.env
提交到版本控制中,如果其中包含任何敏感信息,如密码!