Para aqueles que se cansaram daquela tela preta e branca do seus scripts, aqui vai uma solução para que a tela fique melhor apresentada e com um visual mais elegante.
Neste artigo não será usada nenhuma ferramenta para a elaboração do script, só sendo necessário a utilização de comandos presentes no shell.
Este artigo poderá ser utilizado e modificado da maneira que se achar necessário, desde que mantenha os direitos autorais.
Para alterarmos o visual do shell, temos uma tabela de referência de códigos.
Cores de texto:
PRETO = 30
VERMELHO = 31
VERDE = 32
AMARELO = 33
AZUL = 34
MAGENTA = 35
CIANO = 36
BRANCO = 37
Cores de fundo:
PRETO = 40
VERMELHO = 41
VERDE = 42
AMARELO = 43
AZUL = 44
MAGENTA = 45
CIANO = 46
BRANCO = 47
Modo ANSI:
NORMAL = 0
NEGRITO = 1
BAIXA INTENSIDADE = 2
ITALICO = 3
SUBLINHADO = 4
PISCANDO = 5
PISCA RAPIDO = 6
INVERSO = 7
INVISIVEL = 8
Como funciona
Entendendo o funcionamento:
Para que o visual do shell seja diferente do que estamos acostumados nos nossos scripts, devemos personalizar as saídas do comando 'echo'. Seu funcionamento é semelhante ao código HTML.
Exemplo:
echo "\033[41;1;37m \033[0m"
Com este código será gerada uma barra vermelha, caso houver algo escrito entre o "\033[41;1;37m" e a "\033[0m", seria mostrado em negrito e com a cor branca.
Onde:
"\033[ - é o início que indica como será formatado.
ele busca o nome dentro do arquivos telefones, a dúvida é a seguinte como que faço para colocar cor e fundo na hora de ler o que vou digitar "read contato" e na hora de me mostrar a resposta "cat /home/thiago/telefones | grep $contato" e outra coisa não entendi direito o {COMENTARIO}33 ele é o tipo de letra, quais os outros valores que posso colocar? e m onde indica a cor do texto "030m", desde já agradeço!!!
[6] Comentário enviado por gieri em 20/03/2012 - 14:27h
Em relação a personalizar a Leitura "read" não conseguir alterar...
Em relação ao resultado conseguir um bom visual segue o script:
<<<<< Inicio >>>>>
#!/bin/bash
clear
echo "{COMENTARIO}33[41;1;37m Digite o contato!!! (Digitar tudo em maiúsculo ) {COMENTARIO}33[0m"
read contato
clear
cont=${#contato}
if [ $cont = 1 ]; then
spaco="-----------------------------"
else if [ $cont = 2 ]; then
spaco="----------------------------"
else if [ $cont = 3 ]; then
spaco="---------------------------"
else if [ $cont = 4 ]; then
spaco="--------------------------"
else if [ $cont = 5 ]; then
spaco="-------------------------"
else if [ $cont = 6 ]; then
spaco="------------------------"
else if [ $cont = 7 ]; then
spaco="-----------------------"
else if [ $cont = 8 ]; then
spaco="----------------------"
else if [ $cont = 9 ]; then
spaco="---------------------"
else if [ $cont = 10 ]; then
spaco="--------------------"
else if [ $cont = 11 ]; then
spaco="-------------------"
else if [ $cont = 12 ]; then
spaco="------------------"
else if [ $cont = 13 ]; then
spaco="-----------------"
else if [ $cont = 14 ]; then
spaco="----------------"
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
echo "{COMENTARIO}33[42;1;37m$spaco Resultado da Pesquisa para $contato $spaco{COMENTARIO}33[0m"
cat /home/thiago/telefones | grep $contato
echo "{COMENTARIO}33[42;1;37m$spaco- Final do Resultado da Pesquisa -$spaco{COMENTARIO}33[0m"
echo
<<<<< Fim >>>>>
Em relação a "{COMENTARIO}33" é a identificação de inicio e fim da personalização acredito que não tenha com alterar...