Scripts Bash : l’art d’automatiser sans faire tout sauter
Le shell Bash est l’interface en ligne de commande la plus utilisée sous Linux. Et comme taper 50 fois la même commande finit par lasser (sauf les puristes masochistes), on écrit des scripts. Un script Bash, c’est comme une recette de cuisine pour votre terminal : si vous la suivez bien, tout fonctionne. Si vous vous trompez… le four explose.
Qu’est-ce qu’un script Bash ?
Un script Bash est un simple fichier texte contenant une série de commandes Bash, exécutées ligne par ligne. Il permet :
- d’automatiser des tâches répétitives,
- d’enchaîner des instructions,
- de créer des outils maison,
- de faire tout ce que l’interface graphique vous cache soigneusement.
Le script peut faire des calculs, lire des fichiers, manipuler des variables, lancer des boucles, faire des tests conditionnels, etc. C’est un mini-programme, mais en shell.
Structure d’un script Bash
Un script commence toujours par une ligne magique appelée « shebang » :
#!/bin/bash
Elle indique au système quel interpréteur utiliser (ici : Bash). Ensuite viennent les commandes.
#!/bin/bash echo "Bonjour, humain." date
Créer un script Bash : étapes de base
1. Créer un fichier
nano monscript.sh
2. Écrire votre script
#!/bin/bash echo "Ce script affiche la date et votre nom" read -p "Quel est votre nom ? " nom echo "Bonjour, $nom !" date
3. Lui donner les bonnes permissions
chmod +x monscript.sh
Sans ça, le script est inerte. Et vous êtes déçu.
4. L’exécuter
./monscript.sh
⚠️ Si vous tapez simplement monscript.sh
, le shell cherchera dans votre PATH. Ajoutez ./
pour dire « dans ce dossier-là ».
Exemples utiles (et non destructeurs, normalement)
1. Script de sauvegarde de dossier
#!/bin/bash source="/home/user/documents" dest="/home/user/sauvegardes" mkdir -p "$dest" cp -r "$source" "$dest" echo "Sauvegarde terminée."
2. Script avec boucle
#!/bin/bash for i in {1..5}; do echo "Ligne $i" done
3. Script de vérification de ping
#!/bin/bash read -p "Entrez une adresse IP ou un domaine : " cible ping -c 3 "$cible" &> /dev/null if [ $? -eq 0 ]; then echo "La cible $cible est joignable." else echo "Échec de la connexion à $cible." fi
4. Script interactif avec menu
#!/bin/bash echo "1) Afficher l'heure" echo "2) Afficher l'utilisateur" read -p "Choisissez une option : " choix case $choix in 1) date ;; 2) whoami ;; *) echo "Option inconnue" ;; esac
5. Script de suppression conditionnelle
#!/bin/bash read -p "Supprimer le fichier test.txt ? (o/n) : " reponse if [ "$reponse" == "o" ]; then rm test.txt echo "Fichier supprimé." else echo "Opération annulée." fi
Fonctions dans un script
#!/bin/bash saluer() { echo "Bonjour, $1 !" } saluer "Toto"
Les fonctions permettent de structurer vos scripts, éviter les répétitions et avoir l’air sérieux.
Gestion des erreurs et robustesse
set -e
: stoppe le script en cas d’erreurset -u
: erreur si une variable non définie est utiliséeset -x
: mode débogage (affiche chaque commande exécutée)
#!/bin/bash set -euo pipefail
Bonnes pratiques
- Commencez toujours par
#!/bin/bash
- Utilisez
chmod +x
pour rendre le script exécutable - Commentez votre code (avec
#
) - Testez vos scripts sur des fichiers fictifs avant de les lancer en production
- Ne faites jamais un
rm -rf *
sans relire trois fois
Conclusion : Le script Bash, l’ami fidèle de l’administrateur
Écrire un script Bash, c’est donner vie à vos lignes de commande. C’est un outil d’automatisation, de contrôle, de gain de temps… ou de catastrophe, si mal utilisé.
Mais bien écrit, bien testé, un script Bash devient une extension de votre volonté système. Et franchement, qui n’a jamais rêvé de supprimer 200 fichiers d’un coup avec un seul for
?