Czytałem ten https://wiki.archlinux.org/index.php/Color_Bash_Prompt i skończyłem z następującymi:
# Stores the status of each command in $RET
PROMPT_COMMAND='RET=$?;'
# A colour.
RED_SHELL='\e[0;36m'
# Prints "Status 1" if RET is 1, for example.
RET_VISUALISE='$(if [[ $RET != 0 ]]; then echo -ne "Status \[$RED_SHELL\]$RET\n" && RET=0; fi;)'
# What to print for each prompt.
PS1="$RET_VISUALISE\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \t \[\e[33m\]\w\[\e[0m\]\n\$ "
To robi prawie to, co chcę, z wyjątkiem sytuacji, gdy naciskam Enter, Enter, Enter wiele razy po poleceniu, które zwróciło status! = 0. W tym przypadku wypisuje „Status 1” za każdym razem, gdy naciskam Enter.
Właśnie tego && RET=0;część miała się pozbyć.
Nie rozumiem też, dlaczego env | grep RETwyświetla tylko PS1zawartość. Jaki jest zakres $RET?