256 cores no shell

Quem leu os posts [Deixando o prompt colorido] e [Usando cores e efeitos no shell] gostou da idéia de colorir os caracteres do shell e o prompt com 16 cores.

Porém, é possível que o seu shell tenha 256 cores, sendo as 16 que já vimos até então (do padrão ANSII) e mais 240 novas.

Para explicar novamente o que expliquei em [Usando cores e efeitos no shell], é mais cômodo você ler o artigo que citei antes, pois o uso das 256 cores é mais complexo (sem saber o básico, você terá dificuldades de compreender), e depois volte a partir daqui para continuar de onde parou :D

Vamos aos exemplos agora.

Para imprimirmos o nome “Alice” apenas em violeta, ou seja,  Alice 

echo -e "\033[0;38;5;129m Alice \033[0m"

"Alice" com fundo verde-limão e texto em negrito:  Alice 

echo -e "\033[1;48;5;118m Alice \033[0m"

Para entender melhor:
echo -e "\033[1;48;5;118m Alice \033[0m"

O número 1 é o código do negrito. Se ele for 0, não é negrito. Os demais efeitos estão em [Usando cores e efeitos no shell].

O número 48 é para que a cor seja especificada como plano de fundo. Se for 38 a cor é especificada para o texto.

Não sei qual é a finalidade desse número 5, mas ele deve estar ali. Se for omitido ou colocar outro número no lugar, não vai funcionar.

O número 118 é o código da cor verde-limão. O código do violeta é 129. A tabela completa com todos os códigos de cores está no final desse artigo.

E é possível combinar as cores de textos e de plano de fundo também.

"Alice" com texto em violeta com fundo verde-limão sem efeitos, ou seja,  Alice 

Vamos printar o código do texto violeta primeiro (\033[0;38;5;129m) e depois o código do plano de fundo verde-limão (\033[0;48;5;118m):

echo -e "\033[0;38;5;129m\033[0;48;5;118m Alice \033[0m"

"Alice" com texto em violeta e negrito com fundo verde-limão, ou seja,  Alice 

Vamos printar o código do texto violeta primeiro (\033[0;38;5;129m) e depois o código do plano de fundo verde-limão com o código de negrito junto (\033[1;48;5;118m).

echo -e "\033[0;38;5;129m\033[1;48;5;118m Alice \033[0m"

Nada impede também de você querer printar primeiro o código do plano de fundo e depois o código do texto, porque o resultado final será o mesmo, independente da ordem, porém o código do efeito deve ser especificado na última tag, do contrário, não vai sair o efeito negrito (ou qualquer outro), porque você vai acabar ativando o negrito com 1 na primeira tag, mas já o desativa logo em seguida com o 0 na segunda tag.

A seguir está a tabela completa de todas as cores:

Quem usa o terminal do Mac vai se decepcionar, porque este terminal não suporta 256 cores, os demais sim, porém quem usa o Mac pode ter esperanças nos terminais alternativos, como o Zoc, o Terminator ou o iTerm. O terminal nativo do X que é utilizado pelo Mac e pelo Linux suporta todas essas cores.

Para saber quais são os efeitos e quais programas o suportam, veja [Usando cores e efeitos no shell].

Leave a Reply

*