Formatando o bash com cores e efeitos

Aprenda a dar um brilho e colorido especial a seus scripts, console e códigos-fonte utilizando recursos do bash, que por sinal ainda são pouco documentados pelo que pude constatar. O artigo foca usuários que estão ainda começando a lhe dar bem com o poderoso bash e desejam utilizar destes recursos tão legais e que podem ser bem úteis às vezes.

[ Hits: 102.739 ]

Por: Perfil removido em 29/12/2004


Aplicando o que aprendemos na linguagem C



Para finalizar, vai abaixo um exemplo de uso da formatação ensinada no artigo aplicada na linguagem C. Dou essa dica pra quem quer economizar linha de código e não 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 possível pensar em usar esta solução em outras linguagens.

Também espero que o artigo tenha sido de alguma utilidade...

[]'s
Hiram Castelo (mineru_uai)
mineru [sem_spam] gmail [ponto] com

Página anterior    

Páginas do artigo
   1. Formatando os bash scripts
   2. Formatando as "prompt strings" do bash
   3. Aplicando o que aprendemos na linguagem C
Outros artigos deste autor

Montando o cache de DNS

Como construir um pacote TGZ do zero

Linux + Rails + Ruby + Mongrel + PostgreSQL + NetBeans 6 Preview

Instalando e configurando o Apache, PHP e MySQL no Slackware 10.1

Linux Hoje

Leitura recomendada

Redundância de links - Mon + Shell Script

KDialog com Shell Script - Conversão de slides JPG para projetores com suporte a miniaturas de imagens

Como configurar o servidor de correio eletrônico Postfix

KeepAlive para conexão discada (ou não)

Colocado o "Motion" na inicialização do Ubuntu 7.04

  
Comentários
[1] Comentário enviado por removido em 29/12/2004 - 02:19h

OPa!,

Pooowwwwwww show de bola ....

já dei um ADD aqui nos meus favoritos do VOL demorooo


--
Abs,
guinet gmail com

[2] Comentário enviado por lowpis em 29/12/2004 - 03:07h

alguns acrescimos:

- vc pode usar \E ao inves de {COMENTARIO}33 (acho melhor por mais claro)

- use "tput sgr0" para restaurar as configuracoes originais. nem sempre o default do bash eh preto com letras brancas, antao nao eh bom fazer {COMENTARIO}33[00;37m no final do script para voltar.o ideal era fazer isso:

echo -e '\E[01;37mViva o \E[04;32mLinux!!!'; tput sgr0

[3] Comentário enviado por lowpis em 29/12/2004 - 03:08h

ps. no comentario acima, eu escrevi "barra 033" mas o site trocou por COMENTARIO :-P

[4] Comentário enviado por removido em 29/12/2004 - 03:21h

valeu pela dica lowpis...!!!

[5] Comentário enviado por fabio em 29/12/2004 - 03:26h

Lowpis, o Hiram também teve esse mesmo problema. Veja só, o código \0 é interpretado pelo PHP como sendo a última expressão regular procurada, então a classe FastTemplate, usada no VOL, substitui o \0 por COMENTARIO nesse caso.

O que tive de fazer é usar a representação hexadecimal do "\" no HTML pra isso funcionar: &#92;

Com relação ao comando tput, uma alternativa é digitar somente: reset

[]'s

[6] Comentário enviado por oplagiadorretona em 29/12/2004 - 10:39h

Cara vc parece um sapaum!!!!como vc não consegiu quebrar a camera com tanta fiura!!!!!

[7] Comentário enviado por c3s4rbs em 29/12/2004 - 14:51h

Excelente artigo!!! Foi pros meus faves =)

[8] Comentário enviado por removido em 29/12/2004 - 15:21h

Lowpis, realmente usar o tput é mais jogo pelo fato de que ele não 'limpa' a tela entao em alguns casos usaria ele sim...

oplagiadorretona, isso num sô eu não rapaiz ... eh um amigo meu aki de bh com essa Lingua artificial lah... se eu fosse dakele jeito ali eu pidia pra nascer de novo (killall -9 me)!

[9] Comentário enviado por c3s4rbs em 30/12/2004 - 01:35h

só não entendo uma coisa... depois de mudar meu PS1, quando eu digito um comando longo no bash, ao inves de pular de linha, o cursor vai lá pro incio da lina e escreve tudo por cima... e nem vai até o final da tela do xterm,isso acontece no meio do "espaço" que sobra pra digitar comandos...

[10] Comentário enviado por removido em 30/12/2004 - 01:57h

é isso acontece mesmo... vou tentar descobrir sobre e posto algo que eu axar aki!

[11] Comentário enviado por flipe em 30/12/2004 - 09:27h

exatamente, eu ja faço isso a algum tempo, e tinha o mesmo brema... o problema está no código d formatação, no meu estava sempre no "\n"..

no caso ai não sei, um exemplo com o meu código...

"export PS1='\033[47;30m\t[\033[31mflipe em hyperlinux pt com pt br\033[30m]?[0m\n?[01;32m [\w] \033[01;34m--> \033[01;33m[\u#\H]\033[0m\033[01;33m\033[31m\033[33m\n'"

se eu colocar mais um "\n" ai da essi brema.... ou se u terminal fica muitu aberto sem realizar nenhuma função!!

falou!!

[12] Comentário enviado por removido em 11/01/2005 - 15:23h

Flipe, ahaha! Cabuloseira total seu PS1 hein... daora!!!

[13] Comentário enviado por malmeida em 14/02/2005 - 19:46h

"{COMENTARIO}33" em caractere octal, ou simplesmente "\E" configuram a tecla "esc" (em ASCII). Creio que seja uma espécie de "reset" antes de alterarmos os atributos. Testem a expressão "{COMENTARIO}33[m" ou "\E[m" no final do script e as configurações originais do prompt estarão de volta.

[14] Comentário enviado por claudio_65 em 16/03/2005 - 12:22h

Boa tarde.

Há cerca de um ano eu comecei a freqüentar este Site e estava entusiasmado com o Linux. Ocorre que há uns seis meses eu tive um problema de saúde e só agora estou retornando à vida normal. Nos últimos acessos que fiz a este Site eu vi um script (não sei se é este o termo correto, pois sou iniciante em Linux) e me interessei pela forma aparentemente simples de se programar. Assim sendo, pergunto:

Alguém pode me indicar onde me informar sobre os comandos, variáveis, etc pára se criar um script?

Antecipadamente agradecido,

Atenciosamente,

Cláudio Baptista.

[15] Comentário enviado por tecnet em 01/06/2005 - 19:03h

Pessoal,

echo -n "Informe la hora deseada (01-24): "
read hora

Como faco para trocar a cor somente do (01-24): sendo que esta como echo -n

Obrigado!

[16] Comentário enviado por texugo89 em 19/01/2006 - 19:30h

Bom Artigo, principalmente a parte da Liguagem C!!!

Caro amigo tecnet, eu sei que já faz um tempo que vc perguntou, mas tá ai a resposta com -ne:

echo -ne 'Informe la hora deseada {COMENTARIO}33[31;1m(01-24){COMENTARIO}33[m: ';
read hora

Obs.:Essa resposta tem como exemplo na primeira parte desse Artigo.

Bom sem o -e eu não tenho certeza se é possivel!


Flw!!!

[17] Comentário enviado por nissieloin em 02/08/2006 - 16:43h

Achei bem legal. Ajuda muito a preparar sistema para iniciantes... principalmente servidores

[18] Comentário enviado por gabrielbiga em 30/11/2006 - 16:45h

Muito Bom.

[19] Comentário enviado por emtudo em 12/03/2007 - 14:56h

eu nao sei como faz, mas poderia ser feito uma forma de tb mudar a cor das letras digitadas com "read variavel"

tipo para ser usado em contra senhas...

[20] Comentário enviado por claytonbh em 27/02/2009 - 11:36h

Caros, por que o efeito piscante nao funciona quando logo via ssh?

[21] Comentário enviado por piquen0 em 29/04/2011 - 11:02h

Muito bacana o artigo...

[22] Comentário enviado por anunakin em 27/06/2013 - 12:01h

033 é o código ASCII para ESC ou ESCAPE, que é usado para escapar comandos para o prompt da bash, isso vem, lá do DOS ...

[23] Comentário enviado por evaldodearaujo em 18/01/2018 - 21:21h

Também pode substituir o \033 por \e ambos são um carácter ASCII para escape (033).
[ Cores em Negrito ]
\e[1;00m Write
\e[1;30m Dark Gray
\e[1;31m Read
[ Cores Normais ]
\e[0;00m
\e[0;30m
Para mais informações leia o manual do bash, digite o seguinte comando no terminal.
$ man bash
No manual procure por "PROMPTING" lá vai está a tabela.

[24] Comentário enviado por ari.arcanjo333 em 20/03/2018 - 21:36h

Opa! o artigo é muito bom e foi uma luz pra o que eu queria, porém com o exemplo de configuração do bash que você usou dá alguns erros.
Tomei a liberdade de corrigir esse exemplo com base em outro artigo que vi que não era tão bom mas que não dava os erros. segue o exemplo corrigido:
export PS1='\[\033[01;32m\]\u\[\033[01;37m\]@\[\033[01;37m\]\h:\[\033[01;34m\]\w\[\033[1;37m\]\$ '

dai é só alterar as cores ao gosto do freguês :D


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts