shell 在带有 .envrc 的目录中启动时 Direnv 未加载环境
Direnv not loading environment when shell starts in a directory with .envrc
假设我在 shell 中,工作目录设置为包含 .envrc
文件的目录。当我现在在终端模拟器中打开一个新选项卡时,一个新的 shell 会启动到与原始 shell.
相同的工作目录中
由于某种原因,.envrc
文件没有加载到这个新的 shell 中。如果手动退出工作目录,再进入,会加载环境变量。
有没有办法让变量在创建 shell 时自动加载?
我是 运行 MacOS Mojave (10.14.4) 和 direnv 2.20.1,使用 bash 作为我的 shell。我正在通过 .bashrc
.
加载 direnv 挂钩
在 macOS Mojave(可能还有旧版本)下,保存 .bashrc
无效。相反,使用 .bash_profile
.
Is there a way to make the variables load automatically when the shell is created
您可以将其添加到您的 .bashrc
eval "$(direnv hook bash)"
它会在您 bash 的开头激活挂钩。
如果您的 bashrc 未加载,请查看 bash_profile / bashrc 以查看哪个呼叫了谁。
您可以尝试“source ~/.bashrc”,看看是不是您的 eval 命令写得不好,或者您的 bashrc 没有被调用。
我发现在我的 zsh 环境中我需要将 export 放在 .envrc 中每个变量的前面
VAR=x
不起作用
改为使用:
export VAR=x
假设我在 shell 中,工作目录设置为包含 .envrc
文件的目录。当我现在在终端模拟器中打开一个新选项卡时,一个新的 shell 会启动到与原始 shell.
由于某种原因,.envrc
文件没有加载到这个新的 shell 中。如果手动退出工作目录,再进入,会加载环境变量。
有没有办法让变量在创建 shell 时自动加载?
我是 运行 MacOS Mojave (10.14.4) 和 direnv 2.20.1,使用 bash 作为我的 shell。我正在通过 .bashrc
.
在 macOS Mojave(可能还有旧版本)下,保存 .bashrc
无效。相反,使用 .bash_profile
.
Is there a way to make the variables load automatically when the shell is created
您可以将其添加到您的 .bashrc
eval "$(direnv hook bash)"
它会在您 bash 的开头激活挂钩。 如果您的 bashrc 未加载,请查看 bash_profile / bashrc 以查看哪个呼叫了谁。
您可以尝试“source ~/.bashrc”,看看是不是您的 eval 命令写得不好,或者您的 bashrc 没有被调用。
我发现在我的 zsh 环境中我需要将 export 放在 .envrc 中每个变量的前面
VAR=x
不起作用
改为使用:
export VAR=x