С ударом это не возможно. Рассмотрите использование сценария удара вместо этого:
#!/bin/bash
pdflatex "$1".tex
Open "$1".pdf
Вуаля!
Вы могли переопределить accept-line
zle
виджет, чтобы сделать все проверки Вы хотите как:
accept-line() {
if [[ $BUFFER =~ '^gcc.*-o\s*\S*\.c\b' ]]; then
zle -M 'I will not do that!'
else
zle .$WIDGET "$@"
fi
}
zle -N accept-line