Bash에서는 다음과 같이 할 수 있습니다.
#!/bin/bash
validate() {
if [[ "$BASH_COMMAND" == whoami ]]; then
return 1
else
return 0
fi
}
set -T
trap 'validate' DEBUG
shopt -s extdebug
이렇게 하면 whoami
아무 일도 일어나지 않습니다.
zsh에서 동일한 목표를 어떻게 달성할 수 있나요? 찾아봤는데 preexec
정보가 별로 없더라구요문서
답변1
당신은 또한 사용할 수 있습니다DEBUG
덫zsh에서는 명령을 건너뛰지만 건너뛰기를 나타내는 메커니즘은 다릅니다.설정 err_exit
옵션.
function validate {
if [[ "$ZSH_DEBUG_CMD" == whoami ]]; then
setopt err_exit
fi
}
trap 'validate' DEBUG