Como exibir texto colorido em shell script

Este tutorial irá ensiná-lo como exibir caracteres coloridos em shells scripts chamando a atenção do usuário para alguma saída de texto no terminal como uma mensagem de alerta ou de erro.

A formatação de cores da saída de um terminal GNU/Linux é iniciada de forma fácil através do parâmetro -e (execute) do comando echo.

Os exemplos a seguir exibem em um terminal de texto (ou console no modo gráfico) fontes em estilo sublilinhado na cor azul sobre um fundo branco o que comprova a possibilidade de formatação da saída padrão (std output).

$ echo -e "\033[04;34;47m     GNU/Linux     "; tput sgr0

$ echo -e "\033[4;34;47m       GNU/Linux     \033[0m" 

Note também que existe uma pequena diferença no segundo exemplo o 0 (zero), antes do [ foi omitido por ser opcional.

No primeiro exemplo o comando tput sgr0 retornará as configurações originais de seu terminal. A mesma opção de reiniciar com as configurações originais é conseguida com a parte 033[0m no segundo exemplo.

E por falar em reiniciar, você pode ainda usar o comando reset que recarrega as configurações originais do atual usuário da shell, sem reiniciar o sistema ou servidor gráfico como alguns possam a vir pensar. Porém caso você escolha esta opção a tela sera apagada semelhante algo como se fosse usado o comando clear, que alguns casos pode ser um efeito indesejável.

Agora, observe um protótipo deste tipo de código:

echo -e "\033[(ES);(CT);(CF)m texto a ser formatado";
Onde:

echo -e - "echoe", imprima, (-)execute o que vier a seguir

\033[ - inicia o código para formatar cores

(ES); - o código do estilo

(CT); - a cor do texto

(CF) - a cor de fundo

m - indica onde termina a formatação

Estilos (ES) - Cod. Normal - 00
Negrito - 01
Baixa intensidade - 02
Itálico - 03
Sublinhado - 04
Piscando - 05
Piscando rápido - 06
Invertido - 07
Invisível - 08

Cores do texto (CT) - Cod.
Preto - 30
Vermelho - 31
Verde - 32
Amarelo - 33
Azul - 34
Magneta - 35
Ciano - 36
Branco - 37

Cores do fundo (CF) - Cod.
Preto - 40
Vermelho - 41
Verde - 42
Amarelo - 43
Azul - 44
Magneta - 45
Ciano - 46
Branco - 47

Você pode usar a seguinte formula de memorização que é a minha preferida. Guardo apenas o raciocínio.

echo -e "\033[

(0)0 ≤ ESTILO ≥ (0)8;

30 ≤ COR DO TEXTO ≥ 37;

40 ≤ COR DO FUNDO ≥ 47

m"

A shell bash usa codificação em sistema numérico octal que pode ser usada com o comado echo -e

Uma forma um pouco mais difícil de decorar/aprender porém infinitamente divertida e no minimo muito curiosa é usar somente códigos da tabela ascii em sistema numérico octal. Assim:

echo -e "\033\0133\065\0155 GNU/Linux \033\0133\0155"

Perceba que a única parte que não "codifiquei" foi a mensagem GNU/Linuxmas isso também pode ser feito.

Para tanto, utilizei, \0, seguido do código ascii do caractere em octal, a qual (tabela ascii), podemos visualizar a listagem completa da mesma digitando em um terminal man ascii.

Acreditem... Esta base de conhecimento sobre a anteriormente já citada tabela de caracteres (e outras) será muito útil em algumas ocasiões da sua vida cada vez mais informatizada.

Em um próximo texto ou mesmo um update deste, escreverei sobre formatação da saída de texto em colunas, tabulações, e como imprimir caracteres especiais e um pouco de dialog, quem sabe.

Nenhum comentário:

Postar um comentário


Nos reservamos o total direito de publicar ou não os seus comentários sem quaisquer justificativas.