views:

46

answers:

1

This is the second time I've wanted to do this and again my google-fu has failed me.

When in the course of running a shell script (in my case a bash script) is there a program/script that tests whether the current shell supports color?

Alternatively is there a way to take the terminal type and easily determine if it supports color?

Either way it would be helpful.

+1  A: 

You can use tput colors.

For my terminal with TERM=xterm-256colors the output is [drumroll] 256! Here are some other examples:

$ 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

Alternatively tput -Tvt100 colors will also allow you to specify the terminal type you're interested in.

Dennis Williamson
This! You sir are a gentleman and a scholar! This is such an easy and elegant solution, I'm not sure why it seems so obscure while searching.
lose_the_grimm