Inicio > Linux, script > Colores en scripts Bash

Colores en scripts Bash

Aquí dejo como colorear el texto de la salida estándar en los scripts de bash.

Actualización: debido a un problema con wordpress o el tema aplicado hay códigos que no se pueden ver correctamente, por lo que he modificado la entrada con una versión alternativa para añadir los colores, lamento cualquier problema que esto haya causado.

Añadimos la marca “\e[31m” al inicio del texto que queremos colorear, donde el 31m es el código de color, en este caso rojo, cuando queramos terminar de colorear el texto añadimos “\e[0m” lo cual devuelve el color por defecto de la consola, también se puede usar

Por ejemplo el siguiente echo: echo -e "\e[31mRojo\e[0m", nos devuelve por pantalla Rojo.

Códigos de colores;

Negro 0;30 Gris oscuro 1;30
Azul 0;34 Azul claro 1;3
Verde 0;32 Verde claro 1;32
Cyan 0;36 Cyan claro 1;36
Rojo 0;31 Rojo claro 1;31
Púrpura 0;35 Púrpura claro 1;35
Marron 0;33 Amarillo 1;33
Gris claro 0;37 Blanco 1;37

Aquí os dejo un script para que los podáis ver en un terminal
#!/bin/bash

echo "Colores en Bash"
echo -e "\e[31mRojo\e[0m"
echo -e "\e[1;31mRojo claro\e[0m"
echo -e "\e[30mNegro\e[0m"
echo -e "\e[1;30mDark Gray\e[0m"
echo -e "\e[34mBlue\e[0m"
echo -e "\e[1;34mLight Blue\e[0m"
echo -e "\e[32mGreen\e[0m"
echo -e "\e[1;32mLight Green\e[0m"
echo -e "\e[36mCyan\e[0m"
echo -e "\e[1;36mLight Cyan\e[0m"
echo -e "\e[35mPurple\e[0m"
echo -e "\e[1;35mLight Purple\e[0m"
echo -e "\e[33mBrown\e[0m"
echo -e "\e[1;33mYellow\e[0m"
echo -e "\e[37mLight Gray\e[0m"
echo -e "\e[1;37mWhite\e[0m"

Categorías:Linux, script
  1. noviembre 27, 2010 a las 3:25 am

    Si señor,cuanto menos curioso…En fin,como siempre,no dejas de sorprenderme..
    Un saludo D&C.

  2. Thomas
    noviembre 23, 2013 a las 10:24 pm

    Hola…porqué cuando ejecuto el script no hay cambio de colores….solo aparece el codigo escrito..

    • gsanox
      noviembre 26, 2013 a las 11:11 am

      Hola Thomas, hace tiempo que escribí este post, y veo que ya no funciona el código sugerido, acabo de corregir el error, muchas gracias por el aviso.

  3. mariomey
    junio 25, 2015 a las 10:20 pm

    Hola!

    Normalmente hago “ps -A | grep pd” para ver los procesos que tienen “pd” en su nombre y su pid. Para no escribir todo eso, creé un archivo en /sbin/gre que contiene:
    #!/bin/bash
    ps -A | grep $1
    y le dí los permisos necesarios para ejecutarlo.

    Entonces, hago “gre pd” y me muestra en pantalla lo que quiero. Ahora… Cuando lo hacía de la forma común, las letras “pd” aparecían resaltadas en rojo. Ahora hago “gre pd” y “pd” no se resalta. ¿Por qué y cómo solucionarlo?

    Creo que puede tener que ver con que puse la consola para que me muestre los colores (descomentando force_color_prompt=yes en ~/.bashrc)… entonces, posiblemente, ¿el archivo bash debería ser configurado para que muestre colores? ¿De qué forma?

    • gsanox
      junio 25, 2015 a las 10:55 pm

      Hola mariomey, gracias por comentar

      Respondiendo a tu pregunta, simplemente añadiendo la opción --color=auto al grep funcionaría, algo similar a esto:
      #!/bin/bash
      ps -A | grep --color=auto $1

      Saludos

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: