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].
