Le shell en couleur c'est plus plus mieux

Voici une petite fonction bash qui permet d'afficher les principales couleurs de base à savoir noir, rouge, vert, jaune, violet, cyan et blanc.
Mais il faut comprendre comment il est possible de mettre des couleurs en bash.
on commence toujours par une séquence d'échappement : \e[ (ou \033[); il faut aussi indiquer qu'on termine la séquence avec le caractère "m" (sans les quotes).
Exemple :
echo -e "\e[0;33m blabla"
devrait afficher blabla en jaune (enfin jaune c'est approximatif). Ici 0;33 correspond à la couleur jaune justement.
Sans plus attendre le script qui affiche les couleurs de base :
black='\e[0;30m' # Black - Regular red='\e[0;31m' # Red green='\e[0;32m' # Green yellow='\e[0;33m' # Yellow blue='\e[0;34m' # Blue purple='\e[0;35m' # Purple cyan='\e[0;36m' # Cyan white='\e[0;37m' # White bldblack='\e[1;30m' # Black - Bold bldred='\e[1;31m' # Red bldgreen='\e[1;32m' # Green bldyellow='\e[1;33m' # Yellow bldblue='\e[1;34m' # Blue bldpurple='\e[1;35m' # Purple bldcyan='\e[1;36m' # Cyan bldwhite='\e[1;37m' # White ublack='\e[4;30m' # Black - Underline ured='\e[4;31m' # Red ugreen='\e[4;32m' # Green uyellow='\e[4;33m' # Yellow ublue='\e[4;34m' # Blue upurple='\e[4;35m' # Purple ucyan='\e[4;36m' # Cyan uwhite='\e[4;37m' # White bblack='\e[40m' # Black - Background bred='\e[41m' # Red bgreen='\e[42m' # Green byellow='\e[43m' # Yellow bblue='\e[44m' # Blue bpurple='\e[45m' # Purple bcyan='\e[46m' # Cyan bwhite='\e[47m' # White rst='\e[0m' # Text Reset function colors { echo -e "\t 0\t 1\t 4\t" echo -e "30\t ${black}black${rst}\t ${bldblack}black${rst}\t\ ${ublack}black${rst}\t ${bblack}black${rst}" echo -e "31\t ${red}red${rst}\t ${bldred}red${rst}\t\ ${ured}red${rst}\t ${bred}red${rst}" echo -e "32\t ${green}green${rst}\t ${bldgreen}green${rst}\t\ ${ugreen}green${rst}\t ${bgreen}green${rst}" echo -e "33\t ${yellow}yellow${rst}\t ${bldyellow}yellow${rst}\t\ ${uyellow}yellow${rst}\t ${byellow}yellow${rst}" echo -e "34\t ${blue}blue${rst}\t ${bldblue}blue${rst}\t\ ${ublue}blue${rst}\t ${bblue}blue${rst}" echo -e "35\t ${purple}purple${rst}\t ${bldpurple}purple${rst}\t\ ${upurple}purple${rst}\t ${bpurple}purple${rst}" echo -e "36\t ${cyan}cyan${rst}\t ${bldcyan}cyan${rst}\t\ ${ucyan}cyan${rst}\t ${bcyan}cyan${rst}" echo -e "37\t ${withe}white${rst}\t ${bldwhite}white${rst}\t\ ${uwhite}white${rst}\t ${bwhite}white${rst}" }
On peut le mettre dans son .bashrc et taper colors au prompt pour voir la liste des couleurs.
Évidemment j'aurais plus faire une fonction plus jolie, mais bon pas envie.
Comment lire le "tableau" :
En haut nous avons la fonte utilisée : 0 pour normal, 1 pour gras, 4 pour souligné et rien pour la couleur de fond.
Au début de chaque ligne le numéro correspondant à la couleur.
Enfin la séquence "\e[0m" permet de remmettre le formatage du texte à zéro.