Secuencias de color ANSI

Para mejorar la salida de los scripts en bash dando un toque de color podemos usar las secuencias de escape de ANSI, por lo que para ello podemos incluir esa función al princicpio de nuestros scripts (o simplemente el código de la función) y ya dispondremos de color en nuestros scripts:

#!/bin/sh

inicializar_colores()
{
# 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

  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 nuestro script llamamos a la función inicializar_colores (o si hemos puesto el código sin la función no hay que hacer nada) y se colocan las variables de colores donde nos interese, y para restablecer el color por defecto 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

Para descargar el fichero con la función de inicializar los colores colores_ansi.sh y el ejemplo con la salida de arriba ejemplo_colores_ansi.sh

Retro

Lugares

Redes

Sistemas

Varios