De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Julio Cezar Neves
Data de Publicação: 04 de setembro de 2018
Podemos colorir a tela usando sequências de escape impossíveis de memorizar
seus conteúdos, ou então usando tput setaf
para especificar a cor das
letras (foreground) e tput setab
para especificar a cor de fundo
(background).
Os valores de setaf
e setab
variam de 0 a 7, e 9 é o valor que
restaura as cores do fonte e/ou do fundo para seu(s) padrão(ões). Veja seus
valores e cores correspondentes na tabela a seguir:
Símbolo | Cor |
---|---|
0 | Preto |
1 | Vermelho |
2 | Verde |
3 | Amarelo |
4 | Azul |
5 | Magenta |
6 | Ciano |
7 | Branco |
9 | Volta a cor default |
A seguir tem um programa que você deveria executar para ver todas as
possibilidades de combinação de cores de fonte e de fundo usando o comando
tput
(como já foi dito, existem outras formas, mas essa é a melhor).
$ cat cores1.sh
#!/bin/bash
for ((b=0; b<=7; b++))
{
tput setab 9; tput setaf 9; echo -n "|"
for ((f=0; f<=7; f++))
{
tput setab $b; tput setaf $f; echo -n " b=$b f=$f "
tput setab 9; tput setaf 9; echo -n "|"
}
echo
}
tput setab 9; tput setaf 9
Os matizes das cores das fontes variam um pouco se a opção tput bold
estiver
ativa (normalmente a cor com ênfase é um tom mais claro). Execute o programa
a seguir que você verá essas diferenças.
$ cat cores4.sh
#!/bin/bash
# cores4.sh - Lista as cores da console com bold
clear
for ((Cor=0; Cor <=7; Cor++))
{
for Modo in sgr0 bold
{
tput $Modo
tput setaf $Cor
printf -v Linha "%-$(tput cols)s" "-Em-modo-$([ $Modo = sgr0 ] && echo Normal || echo "Bold ")-"
sed "s/ /?/g" <<< "$Linha"
}
tput sgr0
}
Neste exemplo o printf
foi usado para formatar a saída, preenchendo-a com
espaços em branco até o tamanho da linha do terminal e jogando-a na variável
$Linha
(por causa da opção -v
). O sed
trocou os espaços em branco
por este símbolo que preenche todo o espaço destinado a cada letra.
E executando-o aparecerá o seguinte:
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários