Bart Schaefer ha proposto il seguente approccio alla stessa domanda sugli utenti zsh mailing list:
zshaddhistory() { whence ${${(z)1}[1]} >| /dev/null || return 1 }
Questa funzione viene eseguita prima che la riga di comando venga scritta nella cronologia. Se restituisce 1, la riga di comando corrente non viene aggiunta né al file della cronologia né allo stack della cronologia locale. Tuttavia, il controllo se il comando attiverà un comando non trovato errore copre solo casi semplici. Per esempio. questa riga sarà nella cronologia:
echo foo; echooo bar
Ma funziona bene per il tuo esempio
gut status
Tieni presente che il comando errato verrà visualizzato su UP-ARROW
(in modo che tu possa correggerlo!), ma non è nello stack della cronologia; controlla con fc -l
.