是否可以在访问所在目录时加载 .env 文件,并在更改为另一个目录时卸载这些变量?
答案1
是的,使用 bash。这将正常地将目录更改为指定目录,如果那里存在 .env 文件,它将获取该文件。如果您将此代码段添加到用户 .bashrc 并获取它。
function cd() {
new_directory="$*";
if [ $# -eq 0 ]; then
new_directory=${HOME};
fi;
builtin cd "${new_directory}"
if [ -f .env ];
then
source .env
fi
}
答案2
如果你想.env
在打开新标签时加载
function loadenv() {
if [ -f .env ];
then
source .env
fi
}
loadenv
function cd() {
builtin cd $@
loadenv
}
答案3
和嘚:
: ${ZSH_DOTENV_FILE:=".env"}
#
# Source local '.env' file (if any).
#
source_env_file() {
if [[ -f "${ZSH_DOTENV_FILE}" ]]; then
>&2 echo "Auto-sourcing ${ZSH_DOTENV_FILE} file"
source "${ZSH_DOTENV_FILE}"
fi
}
# Hook our function so that it gets automatically executed whenever we `cd`
# See special `chpwd` hook function: https://zsh.sourceforge.io/Doc/Release/Functions.html
autoload -U add-zsh-hook
add-zsh-hook chpwd source_env_file
如果您使用 ohmyzsh 框架,那么您也可以使用这个插件:杜滕(本质上作用相同)。