Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais] ·  Efetividade ·  Linux in Brazil ·  Floripa  

Gerando saída colorida no console em seus programas e scripts

O Linux Journal publicou um artigo explicando como gerar saída colorida no console em seus programas e scripts. Se você já viu muitos códigos que parecem com sequências de colchetes e queria entender como funcionam, esta é sua chance - e você ainda poderá ver várias outras técnicas mais portáveis.

Comentários dos leitores

Os comentários abaixo são responsabilidade de seus autores e não são revisados ou aprovados pelo BR-Linux. Consulte os Termos de uso para informações adicionais. Esta notícia foi arquivada, não será possível incluir novos comentários.
Comentário de Damarinho
Escape sequences: (*_*)
1 -Nâo testei o uso da alternativa neste documento, relativa a programa em C.

2 - A geração do ESC (Control-V + ESC), em editores, não funciona. Então, é impraticável seu uso em scripts-shell.

3 - A alternativa genéricamente usual, em Linux, para o caractere ESC é: \033[ ou \e[, tanto em Terminais-Console quanto em scripts, com o parâmetro -e.

echo -e "\e[1;33;44m intensificado-amarelo-azul \e[0m"


4 - É amplamente abrangente a documentação sobre este assunto com
rxvt ou rxvt-unicode, conforme /usr/share/doc/packages/rxvt/rxvtRef.html ...


TITLE INFORMATION: Rxvt Technical Reference
AUTHOR INFORMATION: Geoff Wing (gcw@pobox.com)
DATE INFORMATION: 18 April 1998

o Definitions
o Values
o Escape Sequences
o CSI (Code Sequence Introducer) Sequences
o DEC Private Modes
o XTerm Operating System Commands
o menuBar
o XPM
o Mouse Reporting
o Special Graphics Mode
o Key Codes

Reworked from XTerm documentation and other sources

(a) Damarinho
http://geocities.yahoo.com.br/omlinux

Comentário de Luc
Tá dominado: http://aurelio.net/doc/coluna/coluna-11.html
Comentário de Rossano
Emacs: No emacs usa-se ctrl-q com a mesma funcionalidade de ctrl-v
Comentário de sdvidal
esc ?: Damarinho,
para o item (2), deves saber que o vi , em qualquer unix/linux suporta a geração do caracter "esc" digitando ctrl-v , certo ? andei testando '\033' mas dependendo do fornecedor unix, não funciona.
saudações.
Comentário de Patola
Portabilidade: A maneira mais portável de fazer isso seria com tput, que "conhece" o terminal presente para saber quais os caracteres/códigos de controle para mudar as cores. O arquivo do linuxjournal, portanto, é um pouco mais completo.
--
LinuxFUD, o TIRA-TEIMA dos ataques ao software livre: http://linuxfud.org
Comentário de Damarinho
tput x echo: (*_*) Patola

1 - Não uso 'tput' em scripts-shell, porque é contraproducente.
Exemplo: Para colocar este texto "Brasil 3 x 0 Venezuela ", na coluna
30 da linha 5, limpando a tela, em letras-cor branca, em fundo azul,
e na coluna 70 : "Brasil" -
o comando shell 'echo' faria em único comando:
echo -e "\e[1;1H \e[2J \e[5;30H \e[1;33;44m Brazil 3 x 0 Venezuela \e[0m\e[70G Brasil"

2- Com os recursos citados na documentação do rxvtRef.html, pode-se
até - com único 'echo -e' - produzir um Manual de Informações.

a) echo -e "texto do Manual com seus atributos" > Manual.lss
b) Leitura: less -CRMf Manual.lss

3 - Alguns Linux estão substituindo o 'tput' por 'echo -e', em sripts
de inicialização.




Comentário de Patola
tput x echo: Mas o echo continua não sendo portável. Se você usar um terminal que suporte cores com código de controle diferentes, como vai fazer? Vai ter que mudar todo o código.

Há anos atrás eu fiz uma bibliotequinha shell que logo na inicialização do shell script carregava na memória, como variáveis, todos os códigos de cores que eu ia usar, usando o tput pra descobri-los. Aí dava pra usar o echo com as variáveis no meio e ficava bem rápido, sendo portável.

--
LinuxFUD, o TIRA-TEIMA dos ataques ao software livre: http://linuxfud.org
BR-Linux.org
Linux® levado a sério desde 1996. Notícias, dicas e tutoriais em bom português sobre Linux e Código Aberto. "A página sobre software livre mais procurada no Brasil", segundo a Revista Isto É.
Expediente
Sobre o BR-Linux
Enviar notícia ou release
Contato, Termos de uso
FAQ, Newsletter, RSS
Banners e selos
Anunciar no BR-Linux
BR-Linux apóia
LinuxSecurity, Tempo Real
Suporte Livre, Drupal
Verdade Absoluta
Pandemonium
Efetividade, Floripa.net
sites da comunidade
Ajuda
Moderação
Flames: não responda!
Publicar seu texto
Computador para Todos
Notícias pré-2004
Tutoriais, HCL pré-2004