Attualmente ho una richiesta in bash che chiama una funzione per l'uscita del codice di ritorno dell'ultimo comando eseguito (se non zero):
exit_code_prompt()
{
local exit_code=$?
if [ $exit_code -ne 0 ]
then
tput setaf 1
printf "%s" $exit_code
tput sgr0
fi
}
PS1='$(exit_code_prompt)\$ '
Questo funziona piuttosto bene, tranne per $?
non reset meno che un altro comando è gestito:
$ echo "works"
works
$ command_not_found
bash: command_not_found: command not found
127$
127$
127$
127$ echo "works"
works
$
E 'possibile ripristinare/disinserire il valore della $?
per il genitore shell la prima volta exit_code_prompt()
viene eseguito in modo tale che essa non continui a ripetere il valore nel prompt?
Mille grazie, Steve.
Perché vuoi farlo? Ciò potrebbe causare ulteriori problemi se si desidera testare manualmente alcuni snippet di script tramite la riga di comando. – anishsane