Estou certo de que definir o tipo de terminal na entrada inittab da seguinte forma: c2: ... tty2 linux-m é apenas uma espécie de tarefa informativa - define a variável TERM para informar comandos / programas / aplicativos sobre o tipo de terminal que o sistema realmente é. Isto é, mesmo que o TERM descreva o terminal como 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 seja definido como não colorido no inittab?
0
Respostas:
TERM é realmente informativo, mas muitos programas / comandos o respeitarão ou confiarão nele.
Como a cor é produzida pode depender muito do tipo de terminal. Na prática, suspeito que todos eles usam ANSI (ou um superconjunto) onde a cor é suportada.
Se TERM for definido como um tipo de terminal mono, um programa precisará usar outras informações para decidir qual 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 uma coisa ruim a fazer se o terminal fosse realmente mono; seria melhor para o comando / programa usar métodos mono (por exemplo, reverso, sublinhado, intensidade, riscar, piscar, etc.) no lugar da cor para distinguir visualmente os elementos .
Se o programa / comando específico respeitar o TERM (como muitos fazem), é igualmente provável que você informe que sua solicitação de cores não é suportada pelo tipo de terminal.
Consulte http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/color.html
Eu não inspecionei o código fonte do ncurses para ver como
has_colors()
é implementado e não sei qual proporção (se houver) de programas / comandos segue o padrão acima.Acho que um pedaço de software muito importante respeita TERM
Por outro lado,
ls
sabe quando estou mentindo.fonte