Por regla general la salida de los scripts en bash sueles ser bastante sencillos (por decir algo) pero pueden tener color y ser más vistosos gracias a las secuencias de escape de ANSI.

Lo mejor es tener una función donde se inicialicen las variables donde tenemos los colores así luego es más sencillo de incluir dicha función en cualquier script:

#!/bin/sh

# Los colores que empiezan por f_ es color de fondo
# en los modos q_ es quitar el modo
# reset quita cualquier color, modo y pone por defecto la salida

inicializar_colores()
{
  esc="\033" # si esto no funciona probar "^[" que es ctrl+v+ESC

  negro="${esc}[30m"
  rojo="${esc}[31m"
  verde="${esc}[32m"
  amarillo="${esc}[33m"
  azul="${esc}[34m"
  rosa="${esc}[35m"
  cyan="${esc}[36m"
  blanco="${esc}[37m"

  f_negro="${esc}[40m"
  f_rojo="${esc}[41m"
  f_verde="${esc}[42m"
  f_amarllo="${esc}[43m"
  f_azul="${esc}[44m"
  f_rosa="${esc}[45m"
  f_cyan="${esc}[46m"
  f_blanco="${esc}[47m"

  negrita="${esc}[1m"
  q_negrita="${esc}[22m"
  italica="${esc}[3m"
  q_italica="${esc}[23m"
  subrayado="${esc}[4m"
  q_subrayado="${esc}[24m"
  inverso="${esc}[7m"
  q_inverso="${esc}[27m"

  reset="${esc}[0m"
}

Luego en el script se llama a la función inicializar_colores y se colocan las variables de colores donde nos interese, y para restablecer usamos ${reset} que deja por defecto los colores.
Por ejemplo:

inicializar_colores

echo -e "una palabra en ${amarillo}amarillo${reset} y otra en ${rojo}rojo${reset}"
echo -e "${negrita}esto es negrita${q_negrita}"
echo -e "${inverso}esto es inverso${q_inverso}"
echo -e "${negro}${f_rojo}fondo rojo letras negras ${cyan}${f_azul}cyan sobre azul${reset}"
echo -e "${italica}esto es italica${q_italica}"
echo -e "${subrayado}esto es subrayado${q_subrayado}"

la salida sería esta:
Salida del ejemplo

El script completo, función de inicializar los colores y el ejemplo de salida, lo podéis descargar de aquí: colores_ansi.sh

Articulos similares: