Configurando a variável TERM

0

Estou certo de que 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 que tipo de terminal o sistema realmente é. Isto é, mesmo se o TERM descreve terminal como tipo monocromático, mas o terminal é realmente capaz de exibir cores quando o comando como ls --color=always envia sua saída para o terminal i mostra cores, mesmo que seja definido como não-colorido no inittab?

    
por Ringger81 02.02.2018 / 12:04

1 resposta

0

TERM é de fato informativo, mas muitos programas / comandos irão respeitá-lo ou confiar nele.

Como a cor é produzida pode depender muito do tipo de terminal. Na prática, suspeito que todos usam ANSI (ou um superconjunto) onde a cor é suportada.

Se TERM for definido para um tipo de terminal mono, um programa teria que usar algumas 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 se o terminal fosse realmente mono, seria melhor para o comando / programa usar métodos mono (por exemplo, reverso, sublinhado, intensidade, strikeout, piscar, etc) no lugar da cor para visualmente distinguir elementos.

Se o programa / comando particular respeitar o TERM (como muitos fazem), é igualmente provável que ele informe que sua solicitação de cor não é suportada pelo tipo de terminal.

Veja o link

if(has_colors() == FALSE)
    {   endwin();
        printf("Your terminal does not support color\n");
        exit(1);
    }

Eu não inspecionei o código-fonte do ncurses para ver como has_colors() está 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.

    
por 02.02.2018 / 17:26

Tags