Pues entonces depende del tipo de terminal. Hoy en día, la mayor parte de las terminales son
xterm y derivados (yo uso
xterm-256color). Otras son más especializadas, como la
screen, que aparecen solo cuando ejecutas el comando screen o tmux.
El cambio de color y demás se hace con secuencias de escape. Y esas secuencias depende de las capacidades de la terminal.
Generalmente, cada tipo de terminal tiene una serie de capacidades (
capabilities) que indican cuántos colores y cómo cambiar de color (y muchas otras cosas).
En mi Linux, esos archivos están colgando de /usr/share/terminfo/. Cuento más de 1600 terminales distintas (han existido muchas a lo largo de la historia de la informática
Yo estudié con la vt220 y la vt52) Más información en
man 5 terminfo. El comando
toe -as saca un listado de todas ellas, con su descripción. Finalmente, con el comando
toe -V sale el número de versión de la biblioteca
ncurses que se está utilizando en el sistema, que es, al final, la que se utiliza para no tener que estar sacando secuencias de escape "a mano".
En Perl hay varios módulos para usar la biblioteca Ncurses. Por estos foros hemos comentado en alguna ocasión el módulo
Term::ANSIColor. Ejemplo:
perl -le 'use Term::ANSIColor qw(:constants); print BOLD, GREEN, "Hola", RESET'Hola(usa el sistema de búsqueda de estos foros. Busca por
term color)
En CPAN hay más
módulos sobre esto.
Mira también
este programa Perl, que sirve para probar cuántos colores hay en tu terminal. Lo bajas y ejecutas así:
Using bash Syntax Highlighting
$ wget http://www.vim.org/scripts/download_scr ... rc_id=4568 -O colortest
$ perl colortest -w
Coloreado en 0.005 segundos, usando
GeSHi 1.0.8.4