Es posible escribir texto a color en un terminal, por ejemplo con la función printf. Los códigos ANSI para los colores están aquí: http://en.wikipedia.org/wiki/ANSI_escape_code#Colors
Básicamente, este es el formato:
printf '\x1b[$EFFECT;$FOREGROUND;$BACKGROUNDmTEST_STRING\x1b[0m'
donde EFFECT son los efectos que se le puede aplicar (bold, underline, etc). Podéis mirar los valores en la wikipedia, un poco más arriba del enlace que he puesto antes, aunque los más importantes son bold(1), italic(3), underline(4) y blink(5).
Este es un resumen de los colores:
Si ejecutáis la siguiente línea en bash os hará una demo con (casi) todas las combinaciones posibles:
STRING="my test string"; echo;echo "Usage: printf '\x1b[\$EFFECT;\$FOREGROUND;\$BACKGROUNDmTEST_STRING\x1b[0m'"; echo;for background in {40..47}; do for foreground in {30..37}; do printf 'foreground: '$foreground', background: '$background' ------- Normal/Bold (1)/Faint (2)/Italic (3)/Underline (4): '; for effect in "" 1\; 2\; 3\; 4\; ; do printf '\x1b['${effect}${foreground}';'$background'm '"$STRING"' \x1b[0m ';done; printf '\n'; done; done
Coloritos en bash
