在 bash 中我可以这样做:
#!/bin/bash
validate() {
if [[ "$BASH_COMMAND" == whoami ]]; then
return 1
else
return 0
fi
}
set -T
trap 'validate' DEBUG
shopt -s extdebug
Run Code Online (Sandbox Code Playgroud)
这样如果我运行whoami什么也不会发生。
我怎样才能在 zsh 中实现相同的目标?我看过但在文档preexec中找不到太多信息
您还可以使用DEBUGtrap来跳过 zsh 中的命令,但指示跳过的机制不同:您需要设置err_exit选项。
function validate {
if [[ "$ZSH_DEBUG_CMD" == whoami ]]; then
setopt err_exit
fi
}
trap 'validate' DEBUG
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |