Mettre en forme des scripts Bash

J'ai pour habitude de développer beaucoup de scripts Shell pour automatiser l'administration de mes serveurs sous Linux. Ça faisait un petit moment que je cherchais par quel moyen je pouvais avoir un peu de mise en forme pour mes scripts Bash (couleurs, tabulations, ...).

Et je suis tombé sur la commande "tput", qui permet de mettre en forme certaines parties de mon script.

De la couleur :

Voici comment mettre un peu de couleur dans vos scripts. Ajoutez ceci au début de votre script :

# Mise en forme
#+ Couleur de base
RESETC="$(tput sgr0)"
# Couleurs + Gras
# Rouge
RED="$(tput bold ; tput setaf 1)"
# Vert
GREEN="$(tput bold ; tput setaf 2)"
# Jaune
YELLOW="$(tput bold ; tput setaf 3)"
# Bleu
BLUE="$(tput bold ; tput setaf 4)"

Une fois que vous avez défini vos couleurs, vous n'avez plus qu'à les utiliser :

echo -n "${YELLOW}- Tâche n°1"

Préfixes par "${COULEUR}" chaque phrase que vous souhaitez mettre en forme !

Du placement, des tabulations :

Faites débuter vos scripts par la commande "clear", histoire d'avoir une console propre.

Utilisez la commande suivante, puis votre "echo", comme ceci :

tput cup 2 3
echo -n "${YELLOW}- Tâche n°1"

Cette commande aura pour effet de vous afficher "- Tâche n°1" en jaune, sur la 2ème ligne, et avec un décallage vers la droite de 3 caractères.

Une autre ? La voici :

tput cup 4 10
echo -n "${YELLOW}- Mise à jour de data/configuration/parametres.xml"
sed -i "s/www/dev/g" $DEV_FOLDER/data/configuration/parametres.xml
tput cup 4 80
echo "${GREEN}[OK]"

Cette commande, nous affiche "- Mise à jour de data/configuration/parametres.xml" en jaune, sur la 4ème ligne, et avec un décallage de 10 caractères vers la droite. De plus, nous afficherons un petit "[OK]" avec un décallage de 80 caractères vers la droite !

À partir de maintenant, vous pouvez ajouter des lignes, et organiser le placement comme vous le voulez. Là, que le premier echo fasse 10 caractères ou 20, le echo qui affiche [OK] sera dans tous les cas décallés de 80 caractères, en partant du début !

Si vous voulez partir de la fin, utilisez la commande tput cols, qui vous renvoie le nombre de caractères de large que votre console fait.

Bref, comme d'habitude, RTFM !

Vus : 2338
Publié par Jeoffrey Bauvin : 48