Pode ser útil obter feedback visual com base no código de retorno do comando executado mais recentemente. Este é meu prompt para zsh:
PS1='%m:%h $(current_dir_path) %(?.$fg[green].$fg[red])%#$reset_color '
O que se traduz em:
cafayate:779 ~ %
O %
normalmente será verde, mas se o último comando não vai ser vermelho:
A “mágica” acontece dentro do %(...)
bloco:
antes do primeiro ponto vem a condição,
antes do segundo ponto o true
galho
e após o segundo ponto, o false
galho.