Bart Schaefer a proposé l'approche suivante à la même question sur les utilisateurs zsh liste de diffusion :
zshaddhistory() { whence ${${(z)1}[1]} >| /dev/null || return 1 }
Cette fonction est exécutée avant que la ligne de commande ne soit écrite dans l'historique. S'il renvoie 1, la ligne de commande actuelle n'est ni ajoutée au fichier d'historique ni à la pile d'historique local. Cependant, la vérification si la commande déclenchera une commande introuvable l'erreur ne couvre que les cas simples. Par exemple. cette ligne sera dans l'historique :
echo foo; echooo bar
Mais cela fonctionne bien pour votre exemple
gut status
Veuillez noter que la mauvaise commande s'affichera sur UP-ARROW
(afin que vous puissiez le corriger !), mais n'est pas dans la pile d'historique ; vérifier avec fc -l
.