Blog de Robert Sebille


Vers mon curriculum vitae - Conception

Accueil > Technique > Informatique > Shell bash > Formater la sortie de xcowsay

Formater la sortie de xcowsay

mardi 23 février 2016, par Robert

Du multilignes avec xcowsay, par exemple ; mais pas seulement !
Article linuxien.

xcowsay est la version GTK+ d’un des scripts Perl les plus utiles du monde libre : cowsay !

Si la vache est formatable, sa sortie l’est directement moins. Si vous passez
xcowsay "Hello\nworld"
xcowsay affichera :
Hello\nworld
et pas :
Hello
world

Alors, que faire ? Le principe est ici le suivant : il suffit d’utiliser des commandes permettant le formatage de sortie texte et de passer leur output à xcowsay via un pipe (|).

Exemple tout simple de multilignes :
echo -e "Hello\nworld" | xcowsay
affichera enfin l’attendu

xcowsay dit 'hello world'
Si on veut formater en plus xcowsay avec ses propres commandes, on les passe après "xcowsay", exemple : echo -e "Hello\nworld" | xcowsay --time=5 --at=100,100

Bien, sur on peut utiliser d’autres codes compatibles avec echo -e [arg] ; par exemple, variable et tabulation :
echo -e "$USER says:\n\tHello world" | xcowsay
qui affichera (chez moi) un joli :
xcowsay, retour de ligne, variable et tabulation.

Et, si les locales le permettent, pourquoi ne pas parler chinois à l’aide des caractères unicodes ?
echo -e  "\u4e2d\u6587" | xcowsay
qui affichera 中文
xcowsay dit 'chinois' en chinois: 中文

Enfin, la commade printf permet de formater nombres et dates. Exemple avec des nombres :
printf "$USER dit:\n\t- J'ai \u20AC %4.2f en poche.\n\t- +%.4d centimes \n\t- \u4e2d\u6587", 14,949 3 | xcowsay
xcowsay avec printf. Formatage de nombres.

On peut obtenir plus d’info à propos de printf en entrant info '(coreutils) printf invocation' en console, ou - mieux ! - en consultant sa doc sur C++ Reference.

Enfin, on avouera sans ambage qu’un echo -e "ls /\n$(ls /)" | xcowsay, même si c’est moins pratique, ça a tout de même plus de g... qu’un bête ls /. Je vous laisse essayer.

Voilà. Tout le monde reconnaîtra aisément qu’il s’agit ici de fondamentaux dans l’appropriation d’un système informatique personnel.

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?

Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.