Aller au contenu
Nouveau cours : Bash pour l'automatisation

Nouveau cours : Bash pour l'automatisation

8 octobre 2026

Le chapitre Fondations ouvre sa partie Shell et outils avec Bash pour l'automatisation. Linux : premiers pas apprenait à taper des commandes ; ce cours apprend à en faire des programmes : des scripts qui tournent la nuit sans personne pour les regarder, qui échouent bruyamment plutôt que de corrompre des données, et qu'un collègue peut relire, modifier et tester.

Des scripts hérités plutôt qu'un manuel de syntaxe

On retrouve Signalements et sa machine de tâches de fond, sig-outils. Camille y a laissé des scripts qui fonctionnent la plupart du temps : l'un casse dès qu'un nom de fichier contient une espace, un autre a envoyé un fichier vide à la mairie après une erreur, un troisième laisse des fichiers temporaires à chaque interruption. L'équipe les range dans un dépôt Git et les réécrit, leçon après leçon. À la fin, l'outil de publication de l'export a une vraie interface en ligne de commande, des codes de sortie documentés, un verrou, un nettoyage garanti, et il est analysé par ShellCheck et couvert par des tests Bats en intégration continue.

Chaque leçon explique ce que Bash fait réellement d'une ligne avant de l'exécuter, et signale les différences avec sh (dash sur Debian et Ubuntu), parce qu'un script lancé par cron ou par /bin/sh n'est pas lancé par Bash. Les exemples visent Bash 5.2, celui d'Ubuntu 24.04 et de Debian 13.

Ce que l'on apprend à ses dépens, en moins cher

Quelques-uns des pièges que les leçons démontent :

  • un script testé avec bash et lancé avec sh, où un bashisme ne provoque aucune erreur mais fait autre chose ;
  • for f in $(ls), et la purge qui supprime un fichier qu'elle n'aurait jamais dû toucher ;
  • $(( 08 - 1 )) : une date du mois d'août lue comme un nombre octal, et un script qui continue avec une variable vide ;
  • local x=$(commande), qui masque l'échec de la commande, même sous set -e ;
  • une fonction appelée dans un if, et set -e qui cesse de s'appliquer à tout son contenu ;
  • ssh dans une boucle while read, qui avale la liste des machines après la première ;
  • un piège EXIT qui vise une variable locale, et le répertoire temporaire qui n'est jamais supprimé ;
  • wait -n pour recueillir les codes de sortie de tâches parallèles, et la tâche tuée par un signal qui disparaît ;
  • set -x en production, et le jeton d'accès qui part dans le journal.

Pour valider

Un quiz de vingt-quatre questions valide le niveau 100 (Apprenti). Le lab fait construire le dépôt complet sur votre poste, sans cloud, puis un script vérifie le résultat de l'extérieur : analyse statique, tests, codes de sortie, verrou, nettoyage après interruption et noms de fichiers hostiles. Il valide le niveau 200 (Compagnon).

Dernière modification