Flash Notes

Programmation - Affichage d'un message en couleur sur un terminal "linux"


• Comment afficher un message en couleur sur un terminal "linux" ?

Solution

Utiliser les séquences d'échappement

Script de test

#!/bin/bash

# Constantes
# ~~~~~~~~~~
red=1
green=2
yellow=3
blue=4
magenta=5
cyan=6
white=7

# Fonction d'affichage d'un message en couleur
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
color_display()
{
	col="$1"
	shift

	case "$col" in
		R|red)         col="red"     ;;
		G|green)       col="green"   ;;
		Y|yellow)      col="yellow"  ;;
		B|blue)        col="blue"    ;;
		M|magenta)     col="magenta" ;;
		C|cyan)        col="cyan"    ;;
		W|white)       col="white"   ;;

		*)             error " Unknown color : \"$col\" !"
		               exit 1
		               ;;
	esac

	col_num=`eval echo '$'"$col"`

	# Affichage de la sequence d'echappement appropriee
	# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	echo -e '\033[01;3'"$col_num"'m'"$@"'\033[0m'
}

color_display red     "Message en ROUGE"
color_display green   "Message en VERT"
color_display yellow  "Message en JAUNE"
color_display blue    "Message en BLEU"
color_display magenta "Message en MAGENTA"
color_display cyan    "Message en CYAN"
color_display white   "Message en BLANC"

Résultat

Message en ROUGE
Message en VERT
Message en JAUNE
Message en BLEU
Message en MAGENTA
Message en CYAN
Message en BLANC