Existem muitas fontes de informação para listar nesta página:
- O comando
echo -e
usa uma extensão para processar\e
como ASCII 27 (octal 33 ou " \ 033 "). A maneira portátil de imprimir esses usosprintf
(POSIX). Compare com o padrãoecho
(POSIX). -
Seu exemplo pode ser reescrito como
printf "3[34m Hello\n 3[0m"
- o padrão para as fugas de cor é ECMA-48 (Funções de controle para codificação Conjuntos de Caracteres).
- No ECMA-48, 8.3.117 SGR - SELECT GRAPHIC RENDITION lista as seqüências de controle para definir 8 cores de primeiro plano e 8 cores de plano de fundo.
- Também lista códigos 39/49 "cor de exibição padrão (definida pela implementação)" e 38/48 "reservados para futura padronização; pretendido para definir a cor do primeiro plano do caractere, conforme ISO 8613-6 [Recomendação CCITT T.416] ". Ou seja, há recomendação de outra organização, mas não foi (até agora, após 24 anos) parte da norma.
- lendo de perto, você pode perceber que o padrão é vago em muitos lugares, permitindo diferentes interpretações. Ele descreve a sintaxe dessas seqüências de controle, mas não descreve seu comportamento . Para isso, você precisa ir até a documentação dos respectivos terminais.
- a documentação para o xterm é encontrada em Sequências de Controle do XTerm , que pressupõe uma familiaridade com a documentação do DEC encontrada em link
- para outros terminais, suas páginas de manual podem enumerar os controles (como feito para o console Linux em console_codes ).
- outros terminais se documentam como "xterm"; para discussão veja o FAQ xterm Comparando versões, contando controles . Felizmente, os controles de cor são principalmente compatíveis (mas veja as perguntas frequentes Meu terminal mostra alguns espaços sem cor ).
-
você também pode ler as páginas de manual para
tput
, que permite que você use Recursos determinfo
em um script de shell. Seu exemplo pode ser reescrito comoprintf '%s\n' "$(tput setaf 4)Hello$(tput setaf 0)"
-
algumas fontes, como o Bash Prompt HOWTO e o < href="http://www.tldp.org/LDP/abs/html/colorizing.html"> Guia avançado de script de script menciona a cor, mas (até mesmo isso) geralmente tem lacunas e omissões e não são úteis em relação ao ECMA-48.
- a maioria das outras fontes que você encontrará com uma cópia de pesquisa na web de outras fontes (como as citadas), etc., e como regra, presta pouca atenção ao padrão real.