Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 未加载包含环境变量的文件_Macos_Bash_Environment Variables_.bash Profile - Fatal编程技术网

Macos 未加载包含环境变量的文件

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

我正在尝试让我的系统自动加载一个包含一些环境变量的文件,以便在我的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 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
命令,但仍然没有显示upremove
exit
word,然后在命令行中按如下方式发出脚本:
。您的_script.sh
退出没有写入,我只是在终端中键入了它,以确保其重新加载是的,通过键入该命令,我现在看到了它,但我希望在加载时自动发生这种情况,而无需键入任何命令。pe
set | grep DEV_DB_HOST
或者将代码插入.bash_配置文件,或者将其存储到特定文件中,并按如下方式从.bash_profile调用:
。您的_script.sh