Bash выполняет код в переменной PROMPT_COMMAND
перед печатью приглашения. Одна из вещей, которые вы можете сделать, это вычислить компоненты приглашения, которые затем собираются с помощью настройки PS1
.
PROMPT_COMMAND_set_status () {
if ((last_status == 0)); then
PS1_status=
else
PS1_status="[$last_status] "
fi
}
PS1=PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w $PS1_status\$ '
PROMPT_COMMAND='last_status=$?; PROMPT_COMMAND_set_status'