Estou certo ao definir o tipo de terminal na entrada inittab assim: c2:... tty2 linux-m é apenas algum tipo de tarefa informativa - define a variável TERM para informar comandos/programas/aplicativos qual tipo de terminal o sistema realmente é. Isso mesmo que o TERM descreva o terminal como do tipo monocromático, mas o terminal é realmente capaz de exibir cores quando o comando ls --color=always
envia sua saída para o terminal i mostra cores mesmo que esteja definido como não colorido no inittab?
Responder1
TERM é realmente informativo, mas muitos programas/comandos irão respeitá-lo ou confiar nele.
A forma como a cor é produzida pode depender muito do tipo de terminal. Na prática, suspeito que todos eles usam ANSI (ou um superconjunto) onde há suporte para cores.
Se TERM for definido para um tipo de terminal mono, um programa teria que usar alguma outra informação para decidir que tipo de controle de cores do terminal usar. Se o padrão for "ANSI", provavelmente funcionará na maioria das circunstâncias hoje em dia.
Isso seria ruim se o terminal fosse realmente mono, seria melhor para o comando/programa usar métodos mono (por exemplo, reverso, sublinhado, intensidade, riscado, piscar, etc.) no lugar da cor para distinguir visualmente os elementos .
Se o programa/comando específico respeitar TERM (como muitos fazem), é igualmente provável que você informe que sua solicitação de cor não é suportada pelo tipo de terminal.
Verhttp://tldp.org/HOWTO/NCURSES-Programming-HOWTO/color.html
if(has_colors() == FALSE)
{ endwin();
printf("Your terminal does not support color\n");
exit(1);
}
Não inspecionei o código-fonte do ncurses para ver como has_colors()
é implementado e não sei que proporção (se houver) de programas/comandos segue o padrão acima.
Acho que um software muito importante respeita o TERM
TERM=xterm-mono robotfindskitten
(mono display)
Por outro lado, ls
sabe quando estou mentindo.