Para mostrar o status de retorno do comando anterior, você pode usar o prompt escape %?
.
RPS1='%B%F{red}%?%f%b'
Você pode até mudar a cor dependendo do status de saída:
RPS1='%B%(?.%F{green}.%F{red})%?%f%b'
Ou só exibe qualquer coisa, se o comando retornou com um erro:
RPS1='%(?..%?)'
Isso irá colorir a saída verde se %?
for avaliado como 0
e vermelho caso contrário.
Para substituir parâmetros arbitrários (como $?
), você precisa ativar a opção PROMPT_SUBST
:
setopt promptsubst
Nesse caso, você precisa citar o parâmetro para evitar que seja substituído no momento da declaração. Por exemplo, usando aspas simples ou citando $
com um \
entre aspas duplas.
RPS1='$?'
RPS1="\$?'
BTW: Não é necessário exportar RPS1
(ou qualquer outro parâmetro de configuração do shell) para que ele tenha efeito.