Développement18 juin 2026· via DEV Community

Scripts Bash et IA : 5 vérifications avant d’exécuter

Scripts Bash et IA : 5 vérifications avant d’exécuter

Image : DEV Community

L’IA vous proposera allègrement un script Bash qui supprime tout votre répertoire personnel avant même que vous ayez cligné des yeux. C’est pourquoi une liste de contrôle en cinq points est désormais aussi indispensable que les tests unitaires pour quiconque copie-colle un script Bash généré par IA dans son terminal.

La directive stricte qui évite les catastrophes silencieuses

Tout script Bash non trivial doit commencer par des garde-fous identiques :

#!/usr/bin/env bash set -euo pipefail IFS=$' \n\t'

set -e interrompt le script dès qu’une commande échoue, empêchant une suppression en cascade. set -u signale les variables non définies, souvent responsables de commandes comme rm -rf $VARIABLE_INEXISTANTE/. set -o pipefail garantit qu’un pipeline échoue si l’une de ses étapes échoue. Le réglage de IFS évite les surprises de découpage de mots sur les noms de fichiers. Si l’IA omet ces lignes, ajoutez-les et relisez le script : des bugs subtils apparaissent souvent immédiatement.

Des guillemets autour de chaque variable – une obligation

La principale source de catastrophes en Bash provient des variables non protégées par des guillemets. L’IA propose souvent cette forme par défaut, car les tutoriels l’utilisent ainsi :

Incorrect

rm -rf $TARGET_DIR

Correct

rm -rf "$TARGET_DIR"

Une variable vide ou un espace dans le chemin transforme la première ligne en rm -rf, supprimant le répertoire courant. Parcourez chaque $VAR dans le script et entourez-le de guillemets : c’est la méthode la plus rapide pour éviter le prochain scandale de suppression virale.

La récupération après échec n’est pas une priorité pour l’IA

Les scripts générés par IA supposent que chaque étape réussit. Prenons cet exemple :

mkdir -p /opt/new-app cd /opt/new-app tar xzf $TARBALL rm $TARBALL

Si tar échoue, set -e arrête le script. Sans cette directive, le script continue allègrement vers rm $TARBALL, effaçant les maigres données restantes. À chaque étape, demandez-vous : quelle est la procédure de récupération en cas d’échec ? Si la réponse est « aucune », évitez au moins de supprimer des données avant d’avoir vérifié le succès de l’étape précédente.

Les journaux ne doivent pas exposer vos secrets

La fuite la plus fréquente survient quand l’IA laisse set -x activé :

set -x # débogage curl -H "Authorization: Bearer $API_TOKEN" https://api.example.com/...

Avec set -x, chaque commande – y compris le jeton développé – apparaît dans les journaux de l’outil CI. Désactivez le traçage autour des appels sensibles :

set +x curl -H "Authorization: Bearer $API_TOKEN" https://api.example.com/... set -x

Ou supprimez simplement set -x une fois le débogage terminé ; les modèles oublient presque toujours de le nettoyer.

Root n’est pas une option par défaut, mais un dernier recours

Les scripts générés par IA incluent souvent des commandes sudo ou supposent des privilèges root. Réservez les commandes nécessitant des droits élevés aux tâches qui en ont vraiment besoin. Si une commande peut s’exécuter en tant qu’utilisateur standard, faites-le ; cela réduit l’impact d’une éventuelle erreur.


Source : DEV Community. Synthèse éditoriale assistée par IA — TechnoExpress.

Lire la source originale sur DEV Community →

← Retour à l'accueil