0Pricing
DevOps Bootcamp · Leçon

Gestion des erreurs et statut de sortie

Mettez en place une vérification robuste des erreurs dans vos scripts en comprenant les statuts de sortie et en utilisant « set -e » ainsi qu’une logique conditionnelle.

Gestion des erreurs et statut de sortie est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.

Bienvenue dans la gestion des erreurs

Dans cette leçon, vous allez apprendre à gérer efficacement les erreurs afin de rendre vos scripts Bash plus robustes.

Imaginez un script qui effectue de nombreuses étapes. Si l’une d’elles échoue, vous voudriez que votre script s’arrête, ou au moins qu’il vous informe de l’échec, n’est-ce pas ? C’est là qu’intervient la gestion des erreurs !

Qu’est-ce qu’un statut de sortie ?

Chaque commande que vous exécutez dans le shell Linux renvoie un statut de sortie (parfois appelé code de sortie ou code de retour).

  • Un statut de 0 signifie que la commande s’est terminée avec succès.
  • Un statut différent de zéro (par exemple 1, 2 ou 127) indique une forme d’échec ou d’erreur.

C’est comme un feu de circulation pour vos commandes !

Vérifier manuellement le statut de sortie

Vous pouvez vérifier le statut de sortie de la dernière commande exécutée à l’aide de la variable spéciale $?.

Essayons une commande réussie, puis une commande qui échoue :

#!/bin/bash

echo "Hello CoddyKit"
echo "Exit status: $?"

ls non_existent_file.txt
echo "Exit status: $?"

Vérification conditionnelle de base des erreurs

Connaître le statut de sortie permet à votre script de prendre des décisions. Vous pouvez utiliser une instruction if pour vérifier $? et réagir aux erreurs.

Votre script peut ainsi détecter les problèmes et éviter de continuer avec des données non valides.

#!/bin/bash

ls non_existent_file.txt

if [ $? -ne 0 ]; then
  echo "Error: The 'ls' command failed!"
  exit 1 # Exit script with an error code
fi

echo "This line will not run if 'ls' fails."

La puissance de `set -e`

Vérifier manuellement $? après chaque commande peut être fastidieux. C’est là que set -e devient très pratique !

Lorsque vous démarrez un script avec set -e, Bash quitte immédiatement si une commande (qui ne fait pas partie d’un test conditionnel) se termine avec un statut différent de zéro.

C’est un mécanisme de sécurité global pour vos scripts !

`set -e` en action

Voyons comment set -e empêche un script de continuer après une erreur. Remarquez que la commande finale echo n’est jamais atteinte.

#!/bin/bash
set -e

echo "Starting important tasks..."

# This command will fail
cp /non_existent_source /tmp/destination

echo "This line will NOT be printed if 'cp' fails."
echo "All tasks completed successfully."

Quand `set -e` n’arrête pas le script

set -e est puissant, mais il obéit à des règles précises. Il ne provoque pas l’arrêt du script si la commande en échec est :

  • Une partie d’une condition if ou while.
  • Une partie d’une liste && ou || (sauf la dernière commande).
  • Précédée par !.

Ces contextes servent à vérifier la réussite ou l’échec : `set -e` n’interfère donc pas.

Combiner `set -e` avec `||`

Vous pouvez parfois vouloir afficher un message d’erreur personnalisé avant de quitter. Vous pouvez combiner set -e avec l’opérateur || (OR).

command || { echo "Error message"; exit 1; }

Si command échoue, la partie située après || s’exécute, affiche votre message, puis quitte avec un code d’erreur précis.

#!/bin/bash
set -e

echo "Attempting to find a file..."

find /non_existent_dir -name "*.txt" || \
  { echo "ERROR: Could not search in /non_existent_dir!"; exit 1; }

echo "Script continued (this won't print if 'find' fails)."

Gérer des codes de sortie précis

Bien que 0 signifie une réussite et qu’une valeur différente de zéro signifie un échec, certains codes différents de zéro peuvent avoir des significations distinctes.

  • 1 : erreur générale.
  • 2 : mauvaise utilisation des commandes intégrées du shell.
  • 127 : commande introuvable.

Vous pouvez utiliser if [ $? -eq 127 ] pour vérifier des types d’échec précis et fournir des informations plus adaptées.

Quiz sur la gestion des erreurs

Laquelle des affirmations suivantes concernant les statuts de sortie de Bash et la gestion des erreurs est TRUE ?

Récapitulatif : des scripts robustes

Vous avez appris à rendre vos scripts Bash beaucoup plus fiables !

  • Chaque commande renvoie un statut de sortie (0 en cas de réussite, une valeur différente de zéro en cas d’échec).
  • La variable $? vous donne le statut de sortie de la dernière commande.
  • set -e est un outil puissant qui quitte automatiquement votre script lors de la plupart des échecs de commandes.
  • Combinez set -e avec || pour afficher des messages d’erreur personnalisés.

Ces techniques vous aideront à écrire des scripts plus professionnels et plus stables.

Questions Fréquemment Posées

La leçon « Gestion des erreurs et statut de sortie » est-elle gratuite ?

Oui — le texte complet de « Gestion des erreurs et statut de sortie » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Gestion des erreurs et statut de sortie » ?

Mettez en place une vérification robuste des erreurs dans vos scripts en comprenant les statuts de sortie et en utilisant « set -e » ainsi qu’une logique conditionnelle. Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?

Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Gestion des erreurs et statut de sortie » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?

Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Débogage des scripts Bash (set -x, trap)
  2. Gestion des erreurs et statut de sortie
  3. Bonnes pratiques de script et analyse statique
  4. Tester des scripts Bash avec Bats
← Retour à DevOps Bootcamp