You are on page 1of 3

Formatando os bash scripts Inicio com uma pergunta: Voc sabe realmente o que Bash?

Bash (Bourne-Again SHell)


Resumidamente, um shell, que nada mais do que um interpretador de comandos usualmente encontrado em sistemas operacionais como Linux, FreeBSD e outros unix-like. O Bash atualmente o shell mais utilizado pela combinao de praticidade e riqueza de recursos. Este, incorpora "legados" do ksh (Korn SHell) e csh (C SHell), segue vrios padres, o que facilita no quesito compatibilidade e finalmente tem grande poder de programao e interatividade com o usurio. Particularmente recomendaria aos usurios que no tm a mnima noo de "Bash Script" darem uma olhada no artigo seguinte antes de prosseguir: Introduo ao Shell Script Vamos ao que interessa e analisar os exemplos abaixo: #!/bin/bash #Texto normal echo "Viva o Linux!" # O argumento "-e" fundamental para ativar a interpretao de caracteres # precedidos pela barra "\". Caso contrrio voc no ver o efeito real e sim # o texto exatamente da forma em que est escrito entre as aspas. #Texto colorido echo -e "Viva o \033[01;32mLinux\033[01;37m!" Observem no exemplo os trechos em negrito e reparem que so eles um dos temas do nosso artigo. Tentarei explicar o que vemos: "\033": ainda no consegui encontrar o real motivo de usar isto, mas obrigatrio para usar as cores, se trocar por outra coisa dar tudo errado; "01"( estilo): significa que nosso texto ser em negrito (bold); "32m" (cor do texto): 32 representa a cor vermelha e o "m" indica o fim da expresso e aps ele voc j poder incluir o texto que bem desejar; Meio complicado ainda n!? Mas vai abaixo os dados que certamente iro ajudar a se organizar:

Estilos Cores de texto Cores de fundo


00: Nenhum 01: Negrito 04: Sublinhado 05: Piscante 07: Reverso 08: Oculto 30: Preto 31: Vermelho 32: Verde 33: Amarelo 34: Azul 35: Magenta (Rosa) 36: Ciano (Azul Ciano) 37: Branco 40: Preto 41: Vermelho 42: Verde 43: Amarelo 44: Azul 45: Magenta (Rosa) 46: Ciano (Azul Ciano) 47: Branco

OBS: Os "estilos" obviamente tem efeito somente no texto e de forma alguma na cor de fundo. Agora ficou fcil n!? Basta agora treinar um pouco para acostumar a usar... E ainda pra facilitar vai abaixo alguns exemplos interessantes: #!/bin/bash #Google com fundo branco! =) echo -e '\033[01;34;47mG\033[01;31mo\033[01;33mo\033[01;34mg\033[01;32ml \ 033[01;31me\033[00;37;40m' #Matrix verde CGA =)! echo -e '\033[01;32mmAtTiX\033[00;37m' #Erro fatal vermelho e piscante pra impressionar!!! echo -e '\033[05;31mERRO FATAL\033[00;37m' #Viva o Linux echo -e '\033[01;37mViva o \033[04;32mLinux\033[00;37m!!!' Formatando as "prompt strings" do bash Considerando que voc j entendeu e abstraiu as dicas de formatao da pgina anterior, ser bem simples entender o que iremos fazer em seguida. Mudaremos o "prompt string" primrio do Bash utilizando os mesmo recursos. Para quem ainda no sabe, prompt string primrio, mais conhecido na praa por "PS1", o conjunto de caracteres que aparece antes do cursor que recebe comandos digitados pelo usurio. O PS1 padro algo como "root@localhost:~#". Traduzindo isso para o Bash ficaria: "\u@\h:\w\$ ". Mais informaes em: http://www.gnu.org/software/bash/manual/bashref.html#SEC83

Vou pegar como exemplo o meu PS1, que por sinal bem legalzinho! =) Siga os procedimentos abaixo para alterar o seu PS1: $ PS1='\033[01;30m[\t] \033[01;37m\u@\h:\033[01;34m\w\033[01;37m\$ ' $ export PS1 Pronto, a essas horas seu PS1 j deve estar alterado =)! Legal n!? D pra fazer bastante coisa com isso, basta ser criativo e por exemplo, criar uma homenagem ao Brasil e deixar o prompt verde e amarelo, que tal!? :) OBS: os procedimentos acima iro mudar o prompt apenas provisoriamente. Caso deseje deixar ele definitivamente da forma que escolher, voc pode colocar as linhas acima dentro do arquivo ~/.bash_profile (preferencial) ou /etc/profile (no recomendado =P). Aplicando o que aprendemos na linguagem C Para finalizar, vai abaixo um exemplo de uso da formatao ensinada no artigo aplicada na linguagem C. Dou essa dica pra quem quer economizar linha de cdigo e no precisar de usar a ncurses.h para fazer simplesmente um "Hello, world!!!" azul! #include <stdio.h> int main(void) { printf("\033[01;34mHello, world!!!"); return 0; } Espero que somente com este exemplo seja possvel pensar em usar esta soluo em outras linguagens. Tambm espero que o artigo tenha sido de alguma utilidade... []'s Hiram Castelo (mineru_uai) mineru [sem_spam] gmail [ponto] com http://www.vivaolinux.com.br/artigos/impressora.php?codigo=1908

You might also like