Se um comando falhar, na maioria das vezes, você receberá uma mensagem de erro. Mais frequentemente, ele também sairá com um código de status diferente de zero, que pode ser inspecionado com $?
.
O verdadeiro problema é que alguns aplicativos irão falhar silenciosamente (devido à preguiça do autor ou configuração de registro estranha).
Eu criei um pequeno ajudante útil para o Bash (que também pode ser adotado para trabalhar com ZSH) que mostra uma marca se o último comando foi bem-sucedido ou não:
#!/usr/bin/env bash
# helper functions for Bash - easier coloring than using escape sequences
function Color() {
echo "\[$(tput setaf $1)\]"
}
function ResetColor() {
echo "\[$(tput sgr0)\]"
}
# now you can add it to your prompt like this:
# function which configures the prompet...
function BashPrompt() {
local last_status=$?
local reset=$(ResetColor)
local failure="✘"
local success="✔"
if [[ "$last_status" != "0" ]]; then
last_status="$(Color 5)$failure$reset"
else
last_status="$(Color 2)$success$reset"
fi
# ...some other things like hostname, current git branch etc
echo "$last_status $current_branch $hostname :"
}
# ...and the hook which updates the prompt whenever we run a command
PROMPT_COMMAND='PS1=$(BashPrompt)'
Veja como fica na minha máquina: