Macos 未加载包含环境变量的文件
我正在尝试让我的系统自动加载一个包含一些环境变量的文件,以便在我的rails项目中使用,而不是仅仅将它们导出到shell中,但我似乎无法让它工作 我正在使用MacOSX10.6 这些是我遵循的步骤Macos 未加载包含环境变量的文件,macos,bash,environment-variables,.bash-profile,Macos,Bash,Environment Variables,.bash Profile,我正在尝试让我的系统自动加载一个包含一些环境变量的文件,以便在我的rails项目中使用,而不是仅仅将它们导出到shell中,但我似乎无法让它工作 我正在使用MacOSX10.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
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
但是我没有看到我设置的VAR
但是,当我echo$path
我试过看这个答案,但我似乎看不出我做错了什么
不会从
$PATH
上找到的文件中读取环境变量;当您在shell中键入命令时,将搜索您的$PATH
,以查找可执行文件
要加载变量,您需要“源”文件:
# .bash_profile
source /Users/Moche/env_vars
(请注意,您还需要使用首字母/
,以使文件名成为绝对文件名。)
另外,由于您使用的是Ruby,您可能对使用。dotenv允许您在Rails项目根目录中的
.env
文件中指定环境变量,并在启动时自动加载它们。这使每个项目所需的变量与代码保持接近,并使项目更具可移植性(例如,您可以使用它部署在Heroku之类的服务上)。只要确保你没有将.env
提交到你的版本控制中,如果它有任何敏感信息,比如密码 不要使用exit
关键字。将代码插入.bash\u profile,或将其存储到特定文件中,例如您的\u script.sh,然后从调用.bash\u profile,如下所示:
. your_script.sh
我会研究这个问题,但我只是尝试用绝对路径从导出更改为源代码,仍然没有显示您是否重新编写了
.bash\u配置文件
?(source~/.bash_profile
从终端,或在保存更改后打开新的终端窗口。)我使用exit
关闭终端窗口,然后重新打开它。我需要使用source命令吗?我刚刚从终端命令行使用了source~/.bash\u profile
命令,但仍然没有显示upremoveexit
word,然后在命令行中按如下方式发出脚本:。您的_script.sh
退出没有写入,我只是在终端中键入了它,以确保其重新加载是的,通过键入该命令,我现在看到了它,但我希望在加载时自动发生这种情况,而无需键入任何命令。peset | grep DEV_DB_HOST
或者将代码插入.bash_配置文件,或者将其存储到特定文件中,并按如下方式从.bash_profile调用:。您的_script.sh