Esto debería ser suficiente:
$ tput colors
colores de tput explicados:
Si miras la página de manual, notarás esto:
SYNOPSIS
tput [-Ttype] capname [parms ... ]
Y...
capname
indicates the capability from the terminfo database. When term‐
cap support is compiled in, the termcap name for the capability
is also accepted.
El termcap colors
está en la base de datos terminfo, por lo que puede solicitarlo. Si tiene un estado de salida cero, entonces se compila el termcap. Pero si tiene algo como:
$ tput unknowntermcap
tput: unknown terminfo capability 'unknowntermcap'
$ echo $?
4
Esto muestra que unknowntermcap no existe. Así que esto:
$ tput colors
8
$ echo $?
0
Muestra que tu comando era correcto.
Otras formas útiles:
- En C, puede usar isatty y ver si es un TTY
- Vea si es una terminal tonta que busca la variable $ TERM
Salud