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.
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 combinação de praticidade e riqueza de recursos. Este,
incorpora "legados" do ksh (Korn SHell) e csh (C SHell), segue
vários padrões, o que facilita no quesito compatibilidade e
finalmente tem grande poder de programação e interatividade com
o usuário.
Particularmente recomendaria aos usuários que não têm a mínima
noção de "Bash Script" darem uma olhada no artigo seguinte antes
de prosseguir:
Vamos ao que interessa e analisar os exemplos abaixo:
#!/bin/bash
#Texto normal
echo "Viva o Linux!"
# O argumento "-e" é fundamental para ativar a interpretação de caracteres
# precedidos pela barra "\". Caso contrário você não 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 são eles
um dos temas do nosso artigo. Tentarei explicar o que vemos:
"\033": ainda não consegui encontrar o real motivo de
usar isto, mas é obrigatório 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 expressão e após ele você já poderá
incluir o texto que bem desejar;
Meio complicado ainda né!? Mas vai abaixo os dados que certamente
irão ajudar a se organizar:
[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
[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: \
Com relação ao comando tput, uma alternativa é digitar somente: reset
[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...
[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?
[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\]\$ '