Em um script de shell, como posso testar programaticamente se o terminal suporta ou não 24 bits ou true color?
Relacionado: Esta pergunta é sobre a impressão de um padrão de teste de 24 bits / truecolor para verificação do globo ocular
Em um script de shell, como posso testar programaticamente se o terminal suporta ou não 24 bits ou true color?
Relacionado: Esta pergunta é sobre a impressão de um padrão de teste de 24 bits / truecolor para verificação do globo ocular
Esta fonte diz para verificar se
$COLORTERM
contém24bit
outruecolor
.sh
bash
/zsh
:Basta usar
tput colors
. Acredito que testar os recursos do terminal é um teste muito mais seguro do que analisar$TERM
ou$COLORTERM
você mesmo.Obviamente,
tput
apenas gera os recursos anunciados conforme registrados no banco de dados Terminfo , portanto, pode não refletir com precisão os recursos reais do seu terminal.Infelizmente, conforme comentários, muitos terminais ainda possuem informações erradas ou desatualizadas, principalmente em plataformas como Windows e MacOS. Esperançosamente, com tempo suficiente (e relatórios de bugs!), esses terminais acabarão por definir suas configurações
$TERM
apropriadamente. Afinal, já se passaram 4 anos desde que o banco de dados Terminfo suporta cores de 24 bits.