2010-09-15 8 views
9

Questa è la seconda volta che ho voluto fare questo e ancora una volta il mio google-fu mi ha fallito.Test per il supporto del colore negli script di shell Linux

Quando nel corso dell'esecuzione di uno script di shell (nel mio caso uno script di bash) esiste un programma/script che verifica se la shell corrente supporta il colore?

In alternativa c'è un modo per prendere il tipo di terminale e determinare facilmente se supporta il colore?

In entrambi i casi sarebbe utile.

risposta

16

È possibile utilizzare tput colors.

Per il mio terminale con TERM=xterm-256colors l'output è [drumroll] 256! Ecco alcuni altri esempi:

$ TERM=vt100 tput colors 
-1 
$ TERM=vt220 tput colors 
-1 
$ TERM=linux tput colors 
8 
$ TERM=cons25 tput colors 
8 
$ TERM=linux tput colors 
8 
$ TERM=rxvt-unicode tput colors 
88 

alternativa tput -Tvt100 colors permetterà anche di specificare il tipo di terminale che ti interessa

+1

questo.! Si signore è un gentiluomo e uno studioso! Si tratta di una soluzione così semplice ed elegante, non sono sicuro perché sembra così oscuro durante la ricerca. –

+0

I <3 StackOverflow ... proprio quando ho bisogno di tale capacità, è già risposto :) – pepoluan

Problemi correlati