Colorindo o Shell

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.

[ Hits: 19.804 ]

Por: Carpegieri Torezani em 17/03/2012


Script pronto



Após este pequeno entendimento, basta soltar a imaginação e fazer da forma que melhor lhe agrade.

Seguem abaixo alguns exemplos prontos.

#!/bin/bash

#################################
#
# Desenvolvido por Carpegieri Torezani
# Este Script poderá ser utilizado, modificado da maneira que se achar necessário desde que mantenha os direitos ao autor.
# Desenvolvido em 28/02/2012
# Informações do autor em: http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4402579U6
# Artigo desenvolvido para o Viva o Linux: http://www.vivaolinux.com.br/
# Esse script será todo comentado, importante prestar atenção a cada comentário.
#
#################################


#################################
# Função verificar o Nome do Computador
nome="$(hostname)"
# Sub-função contar quantidade de letras do nome do computador e calcular espaço livre
cont=${#nome}

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
# Fim da função verificar o Nome do Computador
#################################

#################################
# Função Verificar memória e efetua os calculos
MEM_TOTAL=`grep "^MemTotal" /proc/meminfo|awk '{print $2}'`
TMP_MEM_FREE=`grep "^MemFree" /proc/meminfo|awk '{print $2}'`
TMP_MEM_USED=`expr $MEM_TOTAL - $TMP_MEM_FREE`
contmem=${#MEM_TOTAL}
contmem2=${#TMP_MEM_FREE}
contmem3=${#TMP_MEM_USED}
contmem4=$((contmem+contmem2+contmem3))
if [ $contmem4 = 12 ]; then
spacomem=" "
else if [ $contmem4 = 13 ]; then
spacomem=" "
else if [ $contmem4 = 14 ]; then
spacomem=" "
else if [ $contmem4 = 15 ]; then
spacomem=" "
else if [ $contmem4 = 16 ]; then
spacomem=" "
else if [ $contmem4 = 17 ]; then
spacomem=" "
else if [ $contmem4 = 18 ]; then
spacomem=" "
else if [ $contmem4 = 19 ]; then
spacomem=" "
else if [ $contmem4 = 20 ]; then
spacomem=" "
else if [ $contmem4 = 21 ]; then
spacomem=" "
else if [ $contmem4 = 22 ]; then
spacomem=" "
else if [ $contmem4 = 23 ]; then
spacomem=" "
else if [ $contmem4 = 24 ]; then
spacomem=""
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
# Fim da função verificar memória e efetua os calculos
############

############
# Função exibir os dados adquirido e outras informações - Opção Visual 1
# Limpando a tela
clear
# Cada espaço em branco será colorido com a cor do fundo.
# Essa linha mostra a Barra Vermelha, caso ouve-se algo escrito entre o "m" e a "\" seria mostrado em Negrito e com a cor Branca.
echo "\033[41;1;37m                                                                                                                  \033[0m"
# Essa linha a Barra Vermelha com as frases "Colorindo o Shell" e "Informações do Computador" em Negrito e Branco
echo "\033[41;1;37m                   Colorindo o Shell                                    Informações do Computador                 \033[0m"
# Essa linha mostra a Barra Vermelha.
echo "\033[41;1;37m                                                                                                                  \033[0m"
# Essa linha divide o espaço a ser exibido com varias cores, começando com barras vermelhas, amarelas, vermelhas, ciano e por fim vermelhas;
Colocando o Nome do computador na coluna ciano
echo "\033[41;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[41;1;37m    
\033[0m\033[0m\033[46;1;37m Nome Computador: $nome  $spaco \033[41;1;37m    \033[0m"  
# Essa linha divide o espaço a ser exibido com varias cores, e mostra a data / hora
echo "\033[41;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[41;1;37m    
\033[0m\033[0m\033[46;1;37m Data e Local: `date +%d/%m/%Y` - `date +%H":"%M":"%S`               \033[41;1;37m    
\033[0m"
# Essa linha divide o espaço a ser exibido com varias cores, e exibe informações do autor
echo "\033[41;1;37m    \033[0m\033[0m\033[43;1;37m        Desenvolvido por Carpegieri Torezani      
\033[41;1;37m \033[0m\033[0m\033[46;1;37m \033[41;1;37m
\033[0m"
# Essa linha divide o espaço a ser exibido com varias cores, e exibe frase "Memória RAM"
echo "\033[41;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[41;1;37m    
\033[0m\033[0m\033[46;1;37m                     Memória RAM                   \033[41;1;37m    \033[0m"
# Essa linha divide o espaço a ser exibido com varias cores, e exibe informações da Memória RAM
echo "\033[41;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[41;1;37m    
\033[0m\033[0m\033[46;1;37m Total: $MEM_TOTAL  Usada: $TMP_MEM_USED  Livre: $TMP_MEM_FREE
$spacomem\033[41;1;37m    \033[0m"
# Essa linha mostra a Barra Vermelha.
echo "\033[41;1;37m                                                                                                                  \033[0m"
# Essa linha mostra a Barra Vermelha.
echo "\033[41;1;37m                                                                                                                  \033[0m"
###########

###########
# Função exibir os dados adquirido e outras informações - Opção Visual 2
echo ""
echo "\033[43;1;37m                                                                                                                  \033[0m"
echo "\033[43;1;37m                   Colorindo o Shell                                    Informações do Computador                 \033[0m"
echo "\033[43;1;37m                                                                                                                  \033[0m"
echo "\033[43;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[43;1;37m    
\033[0m\033[0m\033[46;1;37m Nome Computador: $nome  $spaco \033[43;1;37m    \033[0m"  
echo "\033[43;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[43;1;37m    
\033[0m\033[0m\033[46;1;37m Data e Local: `date +%d/%m/%Y` - `date +%H":"%M":"%S`               \033[43;1;37m    
\033[0m"
echo "\033[43;1;37m    \033[0m\033[0m\033[43;1;37m        Desenvolvido por Carpegieri Torezani      
\033[43;1;37m    \033[0m\033[0m\033[46;1;37m                                                   \033[43;1;37m    
\033[0m"
echo "\033[43;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[43;1;37m    
\033[0m\033[0m\033[46;1;37m                     Memória RAM                   \033[43;1;37m    \033[0m"
echo "\033[43;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[43;1;37m    
\033[0m\033[0m\033[46;1;37m Total: $MEM_TOTAL  Usada: $TMP_MEM_USED  Livre: $TMP_MEM_FREE
$spacomem\033[43;1;37m    \033[0m"
echo "\033[43;1;37m                                                                                                                  \033[0m"
echo "\033[43;1;37m                                                                                                                  \033[0m"
############

############
# Função exibir os dados adquirido e outras informações - Opção Visual 3
echo ""
echo "\033[42;1;37m                                                                                                                  \033[0m"
echo "\033[42;1;37m                   Colorindo o Shell                                    Informações do Computador                 \033[0m"
echo "\033[42;1;37m                                                                                                                  \033[0m"
echo "\033[42;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[42;1;37m    
\033[0m\033[0m\033[46;1;37m Nome Computador: $nome  $spaco \033[42;1;37m    \033[0m"  
echo "\033[42;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[42;1;37m    
\033[0m\033[0m\033[46;1;37m Data e Local: `date +%d/%m/%Y` - `date +%H":"%M":"%S`               \033[42;1;37m    
\033[0m"
echo "\033[42;1;37m    \033[0m\033[0m\033[43;1;37m        Desenvolvido por Carpegieri Torezani      
\033[42;1;37m    \033[0m\033[0m\033[46;1;37m                                                   \033[42;1;37m    
\033[0m"
echo "\033[42;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[42;1;37m    
\033[0m\033[0m\033[46;1;37m                     Memória RAM                   \033[42;1;37m    \033[0m"
echo "\033[42;1;37m    \033[0m\033[0m\033[43;1;37m                                                   \033[42;1;37m    
\033[0m\033[0m\033[46;1;37m Total: $MEM_TOTAL  Usada: $TMP_MEM_USED  Livre: $TMP_MEM_FREE
$spacomem\033[42;1;37m    \033[0m"
echo "\033[42;1;37m                                                                                                                  \033[0m"
echo "\033[42;1;37m                                                                                                                  \033[0m"
############

############
# Função exibir os dados adquirido e outras informações - Opção Visual 4
echo ""
echo "\033[44;1;36m                                                                                                                  \033[0m"
echo "\033[44;1;36m                   Colorindo o Shell                                    Informações do Computador                 \033[0m"
echo "\033[44;1;36m                                                                                                                  \033[0m"
echo "\033[44;1;36m    \033[0m\033[0m\033[41;1;36m                                                   \033[44;1;36m    
\033[0m\033[0m\033[40;1;36m Nome Computador: $nome  $spaco \033[44;1;36m    \033[0m"  
echo "\033[44;1;36m    \033[0m\033[0m\033[41;1;36m                                                   \033[44;1;36m    
\033[0m\033[0m\033[40;1;36m Data e Local: `date +%d/%m/%Y` - `date +%H":"%M":"%S`               \033[44;1;36m    
\033[0m"
echo "\033[44;1;36m    \033[0m\033[0m\033[41;1;36m        Desenvolvido por Carpegieri Torezani      
\033[44;1;36m    \033[0m\033[0m\033[40;1;36m                                                   \033[44;1;36m    
\033[0m"
echo "\033[44;1;36m    \033[0m\033[0m\033[41;1;36m                                                   \033[44;1;36m    
\033[0m\033[0m\033[40;1;36m                     Memória RAM                   \033[44;1;36m    \033[0m"
echo "\033[44;1;36m    \033[0m\033[0m\033[41;1;36m                                                   \033[44;1;36m    
\033[0m\033[0m\033[40;1;36m Total: $MEM_TOTAL  Usada: $TMP_MEM_USED  Livre: $TMP_MEM_FREE
$spacomem\033[44;1;36m    \033[0m"
echo "\033[44;1;36m                                                                                                                  \033[0m"
echo "\033[44;1;36m                                                                                                                  \033[0m"

Visual final do script

Segue abaixo o screenshot do script com o visual personalizado:
Linux: Colorindo o Shell (Código Puro)
Página anterior    

Páginas do artigo
   1. Introdução
   2. Script pronto
Outros artigos deste autor

Balanceamento de links - Load balance + Failover + Failback

Leitura recomendada

expr - Definição e uso do comando

O que é Shell Script

Montando, monitorando e gerando logs dos compartilhamento NFS automaticamente

Programação com Shell Script

Mostrando dicas ao iniciar o terminal

  
Comentários
[1] Comentário enviado por JJSantos em 17/03/2012 - 14:24h

Good.

[2] Comentário enviado por andfeh em 17/03/2012 - 14:25h

Faltou só o "-e" depois do echo para interpretar os "caracteres especiais" (escapes)!

ex:

echo -e " comandos com a \ aqui dentro "

Até mais,
André Carlim

[3] Comentário enviado por gieri em 17/03/2012 - 19:34h

Prezado andfeh, na minha distro e algumas que testei não precisa usar o "-e"...

Fiz o teste em Ubuntu e Linux Educacional e todas funcionaram perfeitamente...

Desde já obrigado pela dica...

Quem quiser baixar o Script acessar o link abaixo:
http://www.vivaolinux.com.br/script/Colorindo-o-Shell-Codigo-Puro

Quem quiser ver uma Screenshots de um sistema que desenvolvi olhar o link abaixo:
http://www.vivaolinux.com.br/screenshot/Gnome-Shell-script-com-menu/

[4] Comentário enviado por thvinicius em 19/03/2012 - 16:34h

Fiz aki no meu Ubuntu 10.10 e precisou do "-e", mas vlw agora vou "brincar" um pouquinho pra aprender mais

[5] Comentário enviado por thvinicius em 19/03/2012 - 17:02h

Ow estou com as seguintes duvidas tenho um script simples de agenda:
#!/bin/bash

echo "------------------------------------------------"
echo -e "{COMENTARIO}33[42;1;30m Digite o contato!!! (Digitar tudo em maiúsculo ) {COMENTARIO}33[0m"
read contato
echo "------------------------------------------------"
echo
echo "------------------------------------------------"
cat /home/thiago/telefones | grep $contato
echo "------------------------------------------------"
echo

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

[7] Comentário enviado por thvinicius em 20/03/2012 - 14:52h

Certinho Kra, brigadão, vlw pela ajuda

[8] Comentário enviado por gieri em 20/03/2012 - 15:16h

Amigo pensando um pouco mais, você pode passar o valor para uma variável, tipo assim:

resultado=`cat /home/thiago/telefones | grep $contato`

Ai você pode personalizar a saida como quiser...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts