zsh 有与 BASH_ENV 等效的东西吗?

zsh 有与 BASH_ENV 等效的东西吗?

我希望能够使用类似的东西BASH_ENV 变量zsh,但是我无法通过谷歌搜索找到类似的内容。

man bash

BASH_ENV

如果在 bash 执行 shell 脚本时设置此参数,则其值将被解释为包含初始化 shell 的命令的文件名,如 ~/.bashrc.的值BASH_ENV在被解释为文件名之前经过参数扩展、命令替换和算术扩展。 PATH不用于搜索结果文件名。

zsh这样的事吗?

答案1

我能想到的最接近的是ZDOTDIR。 Zsh 读取目录中的用户初始化文件,如果未设置则$ZDOTDIR回退到该文件。当 zsh 运行脚本时,它会加载用户初始化文件。$HOMEZDOTDIR.zshenv

所以如果在 bash 中你有一个/path/to/my-bash-env包含以下内容的文件

wibble

然后你运行env BASH_ENV=/path/to/my-bash-env /path/to/script.bash,然后在 zsh 中你可以有一个/path/to/my-zsh-dir/.zshenv包含以下内容的文件

if [[ -e ~/.zshenv ]]; then . ~/.zshenv; fi
wibble

并运行env ZDOTDIR=/path/to/my-zsh-dir /path/to/script.zsh

相关内容