10

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.

lose_the_grimm
  • 313
  • 4
  • 15

1 Answers1

19

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
  • 346,391
  • 90
  • 374
  • 439