Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zsh继承xtrace选项_Zsh - Fatal编程技术网

Zsh继承xtrace选项

Zsh继承xtrace选项,zsh,Zsh,与此问题类似:,但适用于Zsh 如何使所有Zsh子shell继承xtrace选项 例如,如果script1.sh正在调用/script2.sh并且我运行zsh-x script1.sh,我希望script2.sh也启用xtrace模式 对于Bash,答案是导出SHELLOPTS变量 Zsh有解决方案吗 您可以利用Zsh中的启动/关闭文件(请参见man zshall):Zsh将始终在启动时读取(并执行)文件$ZDOTDIR/.zshenv(如果ZDOTDIR未设置,则使用HOME)。因此,您可以将

与此问题类似:,但适用于Zsh

如何使所有Zsh子shell继承xtrace选项

例如,如果
script1.sh
正在调用
/script2.sh
并且我运行
zsh-x script1.sh
,我希望
script2.sh
也启用xtrace模式

对于Bash,答案是导出
SHELLOPTS
变量


Zsh有解决方案吗

您可以利用Zsh中的启动/关闭文件(请参见
man zshall
):Zsh将始终在启动时读取(并执行)文件
$ZDOTDIR/.zshenv
(如果
ZDOTDIR
未设置,则使用
HOME
)。因此,您可以将
set-x
放入
$ZDOTDIR/.zshenv
中,每个Zsh脚本都将在启用xtrace模式的情况下运行

这是我在脚本中使用它的方式:

env_dir="$(mktemp -d)"
echo "set -x" > "${env_dir}/.zshenv"
export ZDOTDIR="${env_dir}"
zsh "$@"
unset ZDOTDIR
rm -rf "${env_dir}"
事实上,这个解决方案也可以用于Bash,使用
Bash_ENV
变量,该变量指向一个文件,类似地,该文件将在Bash启动时执行