Dominique Meeùs
Dernière modification le   
retour à la table des matières — à l’index — à ma page de départ

Script Bash

Il y a beaucoup de manuels pour écrire des scripts Bash et beaucoup de bons. Le Bash Guide for Beginners a ceci de particulier que la jeune femme qui en est l’auteur, Machtelt Garrels, peut aussi vous donner des cours de home brewing. On peut supposer que se débrouiller en écrivant ses propres scripts ou faire sa bière soi-même, c’est un peu la même orientation d’esprit.

On peut rendre ses propres scripts plus lisibles en y mettant de la couleur, comme :

echo -e "Un passage en \e[31mrouge\e[0m dans un message"

(ou [32m pour vert, ou [34m pour bleu. Le paramètre -e est indispensable pour assurer qu’echo interprète correctement le signe \. Le code [0m (pas de couleur) rétablit la couleur par défaut. Les codes numériques de couleur 31 et cetera ci-dessus sont un raccourci de 0;31 et cetera. En remplaçant 31 (ou 0;31) et cetera par 1;31 et cetera, on aurait des couleurs claires.

Cela vaut aussi pour le prompt. Quand dans un terminal les commandes se succèdent, on voit mal où elles commencent et où elles finissent ; on peut donc préférer un prompt voyant. Une modification du prompt s’écrit dans le fichier de configuration ~.bashrc. Si le fichier existe et contient un prompt PS1, on peut éditer ce dernier. Sinon, pour ne pas écrire de bêtises, il est bon de demander le code du prompt par la commande echo $PS1. On copie le résultat et dans le ~.bashrc on l’exporte avec les additions de couleur qu’on veut, c’est-à-dire que dans ~.bashrc on écrit quelque chose comme :

export PS1="${debian_chroot:+($debian_chroot)}\[\e[1;34m\]\u@\h:\w\\[\e[0m\]\[\e[1;31m\] $ \[\e[m\]"

où j’ai mis aussi deux passages en gras (comme \e[1m$ \e[m). Il y a la complication supplémentaire que chaque indication de mise en forme, de début comme de fin, doit être elle-même encadrée dans \[ … \], sinon le terminal se trompe quant à la longueur du prompt et se perd dans les retours à la ligne. (Mais il ne faut pas mettre du \[ … \] dans un script Bash.) Dans ce contexte, [1;34m donne un bleu gras, pas un bleu clair.

Dominique Meeùs . Date: 2011… 2017