direnv 是一个自动激活环境的工具,它可以在你进入指定的目录时按照约定修改路径变量,离开该目录时恢复路径变量。
安装:
# Debain
sudo apt-get install direnv
Execute different hook for different shell:
eval "$(direnv hook bash)" # hook for bash
可以将上述命令写到 .bashrc 中自动挂载 direnv 的钩子。
默认情况下,激活 direnv 钩子后每次切换目录都会打印类似于 "direnv: unloading" 的日志信息,该日志可通过设置环境变量隐藏:
export DIRENV_LOG_FORMAT=""
我们可以在特定的目录中使用 .envrc 文件来指定进入该目录时需要执行的命令,但是显而易见这存在很大的安全隐患,所以默认情况下我们进入该目录时必须使用下面的指令批准 .envrc 文件的内容:
direnv allow
这显然不能达到自动化的目的。不过我们可以通过下面的环境变量指定自动批准的白名单,请自行确保白名单中的 .envrc 文件是受信任的:
export DIRENV_ALLOW_PATH="/path/to/dir"
评论区