\e]0;
não é um código ANSI válido, para obter "exibição normal", ele precisa ser \e[0m
.
Conforme indicado pelo texto no link de Ƭᴇcʜιᴇ007, você pode combinar um número deles na mesma sequência:
$ echo -en "\e[0;31;7m TEST \e[0m"
TEST $ _
Que TEST
será vermelho inverso
Observe que -e é necessário para a análise de sequência de escape. -n faz echo não imprimir um (CR +) LF no final.
Melhor ainda é usar códigos terminfo usando o comando tput
- man 5 terminfo
é técnico, mas provavelmente bastante completo.
Por que tput? Como os terminais nem sempre são ANSI, o terminfo tenta "consertar" isso fornecendo uma única interface para o maior número possível de terminais.
... então echo "$(tput sgr0)"
- é o mesmo que echo -e "\e[0m"
- se você tiver um terminal ANSI.