Ce blog a déménagé et parle maintenant uniquement anglais.

This blog has moved and now only speaks English.

blog.floriancargoet.com

See you there!

/home/florian

le blog de florian cargoet : du linux, du web et du logiciel libre



Un peu de couleur dans la console !

4 July, 2008 (11:06) | Linux | Florian Cargoet

Premier article qui n’a rien à voir avec le projet de forge d’Evolix, ça y est, je m’approprie ce blog et commence à y raconter ma vie…

Elle est relativement peu utilisée mais pourtant souvent supportée par votre terminal, je parle de la couleur !

Il existe un bon petit nombre de séquences d’échappement qui permettent d’égayer votre terminal!

Pour un aperçu de ces couleurs sur votre terminal, vous pouvez executez ce script qui affiche les différentes combinaisons de couleur de premier-plan et d’arrière-plan (16 couleurs).

#!/bin/bash
 
# prints a color table of 8bg * 8fg * 2 states (regular/bold)
echo
echo Table for 16-color terminal escape sequences.
echo Replace ESC with \033 in bash.
echo
echo "Background | Foreground colors"
echo "---------------------------------------------------------------------"
for((bg=40;bg<=47;bg++)); do
	for((bold=0;bold<=1;bold++)) do
		echo -en "\033[0m"" ESC[${bg}m   | "
		for((fg=30;fg<=37;fg++)); do
			if [ $bold == "0" ]; then
				echo -en "\033[${bg}m\033[${fg}m [${fg}m  "
			else
				echo -en "\033[${bg}m\033[1;${fg}m [1;${fg}m"
			fi
		done
		echo -e "\033[0m"
	done
	echo "--------------------------------------------------------------------- "
done
 
echo
echo

Vous pouvez également trouver ce script ici.

Si vous voulez tester le mode 256 couleurs : http://www.vim.org/scripts/script.php?script_id=1349

Filtre Perl

Et voici un petit script Perl que j’ai écrit rapidement et qui prend en paramètre des regex s/// légèrement modifiées (ce qui est largement améliorable).
On peut donc utiliser “| colorize s/motif/red/ s/autre_motif/green/gi” pour colorer un peu la sortie de vos programmes

#!/usr/bin/perl -w
 
my %colors=(
    'normal' => "\033[0m",
    'red' => "\033[1;31m",
    'green' => "\033[1;32m",
    'yellow' => "\033[1;33m",
    'blue' => "\033[1;34m",
    'purple' => "\033[1;35m",
    'cyan' => "\033[1;36m",
    'grey' => "\033[1;30m"
);
 
foreach  (@ARGV)
{
    s[^(.*)/(.*)/(.*)/(.*)$][$1/($2)/$colors{$3}$2$colors{'normal'}/$4];
}
 
while(<STDIN>)
{
    foreach $regex (@ARGV)
    {
        eval($regex);
    }
    print ;
}

Article précédent :
«
Article suivant :
»