Scripts bash

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’erreur
  • set -u : erreur si une variable non définie est utilisée
  • set -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 ?