如何使用变量自动加载和卸载 .env 文件

如何使用变量自动加载和卸载 .env 文件

是否可以在访问所在目录时加载 .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 框架,那么您也可以使用这个插件:杜滕(本质上作用相同)。

相关内容