Cores bash relativas que funcionam com todos os esquemas?

2

Como posso ter uma cor "relativa" no bash, em vez de uma cor codificada? Se eu especificar o uso de amarelo "\ 033 [93m", ele ficará ruim para as pessoas que usam o plano de fundo branco.

Existe uma maneira de especificar não uma cor, mas "estilo", por assim dizer? como "Destaque" ou "Importante" ou "escurecer" ou "Depreciado"?

    
por Mikhail 25.06.2014 / 21:58

2 respostas

1

Bash não tem nada a ver com isso. A página bash(1) man não contém menção de cor.

Se o seu script estiver alterando o texto ou a cor do plano de fundo, ele enviará códigos de escape de cor ANSI, que são bytes de caracteres de controle que bash apenas ignora e passa direto para o emulador de terminal da mesma forma que envia qualquer ASCII caractere que ele quer que o terminal exiba. Você está confiando no seu emulador de terminal para interpretar esses códigos corretamente.

Infelizmente, os códigos de cores ANSI datam de quando os terminais e placas gráficas e monitores de PC só podiam exibir 8 ou 16 cores (se isso), portanto você não pode usar códigos de cores ANSI para o que está tentando fazer.

Portanto, não é necessário construir toda a infraestrutura (emuladores de terminal que podem fazer cores relativas, um novo sistema de código de cores para comunicar cores relativas a seus emuladores e possivelmente a terminologia / termcap relacionada e outras infraestruturas de software relacionadas a terminais trabalhar para garantir que os scripts reconheçam com segurança que o usuário está usando um emulador de terminal que conhece esses novos truques de cores) e forçando os usuários a usá-lo, você provavelmente terá que passar sem isso.

    
por 25.06.2014 / 23:51
0

Encontrou esta página muito detalhada em estilos e cores interpretados por terminais comuns. Para a questão original, na ênfase, há alguns truques que podem ser feitos. Apenas tenha em mente que isso pode não funcionar em todos os terminais, como foi apontado por Spiff, cabe ao terminal interpretar uma seqüência de escape. Daquela página:

echo -e "Normal \e[1mBold"

echo-e"Normal \e[2mDim"

No meu terminal, também tentei \e[9 , o que resultou em um texto tachado .

Usar estilos como esses é melhor do que usar cores porque você nunca obterá uma combinação invisível, a menos que você use intencionalmente \e[8 . Se algum estilo for ignorado pelo terminal, você verá simplesmente texto simples.

    
por 27.06.2014 / 18:42

Tags