Coloriamo la Bash

Un modo semplice e veloce per poter colorare la propria shell preferita esiste?
La risposta è SI !

Spesso quando mi creo qualche script bash, per eseguire in modo veloce alcune operazioni ricorrenti sulla mia macchina, sento la necessità di dare un tocco particolare ai messaggi di avviso dei miei script così ho deciso di introdurre un sistema semplice per poterli colorare.
Si tratta semplicemente di creare uno script contenente delle variabili con dei nomi comprensibili che contengono i codici da passare a bash per la colorazione delle stringhe.

Ecco lo script che ho chiamato colori:

#!/bin/bash
export WHITE="\e[1;37m"
export LGRAY="\e[0;37m"
export GRAY="\e[1;30m"
export BLACK="\e[0;30m"
export RED="\e[0;31m"
export LRED="\e[1;31m"
export GREEN="\e[0;32m"
export LGREEN="\e[1;32m"
export BROWN="\e[0;33m"
export YELLOW="\e[1;33m"
export BLUE="\e[0;34m"
export LBLUE="\e[1;34m"
export PURPLE="\e[0;35m"
export PINK="\e[1;35m"
export CYAN="\e[0;36m"
export LCYAN="\e[1;36m"
export Z="\e[0m"

L’ultima variabile “Z” servirà ad indicare alla bash di tornare al colore predefinito.

Si può salvare lo script all’interno della cartella /usr/local/bin/ con i permessi di esecuzione (chmod +x ).
In questo modo diventerà semplicissimo poter personalizzare i colori dei messaggi di un proprio script bash. Faccio un esempio:

#!/bin/bash
# Richiamo lo script contenente i codici dei colori
. colori

# Stringa di colore "normale"
echo "Ciao Mondo"

# Stringa colorata in rosso
echo -e $RED"Ciao mondo (in rosso)$Z"

#Stringa di nuovo normale
echo "Ciao Mondo 2"

# Stringa di speranza :) verde
echo -e $GREEN"Ciao mondo"
# non ho messo la variabile $Z che riporta normale il colore per cui...
echo "questa stringa rimane di colore verde"
# per far tornare tutto "normale" basta che richiamo $Z
echo -e "$Z ora niente colore verde."
exit

Faccio notare l’uso dell’opzione -e del comando echo.
Cito direttamente dalla pagina man di echo:

-e enable interpretation of backslash escapes

Senza tale opzione la bash non cambierà colore delle stringhe.

Buon scripting colorato allora 😀

Riferimenti utili:
http://www.gnu.org/software/bash/
Spiegazione dell’uso dei colori nella guida Bash Prompt HOWTO
Guida avanzata di scripting bash

Privacy Preference Center