Menu
Coddy logo textTech

Erreur standard

Fait partie de la section Les fondamentaux du Journey Terminal de Coddy — leçon 41 sur 82.

Le troisième et dernier flux de données est l'erreur standard, abrégé en stderr. Ce flux est spécifiquement destiné aux messages d'erreur et aux avertissements, les maintenant séparés de la sortie normale.

Lorsqu'une commande échoue, le message d'erreur est envoyé vers la sortie d'erreur standard, et non vers la sortie standard :

ls nonexistent_folder

Le message d'erreur que vous voyez passe par stderr. Cette séparation est importante car vous pouvez rediriger les erreurs indépendamment de la sortie normale.

Pour rediriger l'erreur standard, utilisez 2> au lieu de > :

ls nonexistent_folder 2> errors.txt

Le 2 fait référence au numéro du descripteur de fichier de stderr (stdout est 1, stderr est 2). Cette commande capture le message d'erreur dans errors.txt tout en gardant votre terminal propre.

Vous pouvez rediriger les deux flux vers des fichiers différents :

ls existing_folder nonexistent_folder > output.txt 2> errors.txt

La sortie standard va dans output.txt, tandis que les erreurs vont dans errors.txt. Pour envoyer les deux flux vers le même fichier, utilisez 2>&1 :

ls existing_folder nonexistent_folder > all_output.txt 2>&1

Cela redirige stderr vers l’endroit où va stdout, en combinant tout dans un seul fichier.

challenge icon

Défi

Facile

Utilisez l'opérateur 2> pour rediriger un message d'erreur vers un fichier. Exécutez ces deux commandes dans l'ordre :

  1. Tentez de lister un dossier appelé missing_folder en utilisant ls, et redirigez le message d'erreur vers un fichier appelé errors.txt
  2. Utilisez cat pour afficher le contenu de errors.txt

Indice : Le format est ls foldername 2> filename. Le message d'erreur va dans le fichier au lieu d'apparaître à l'écran. Utilisez cat pour vérifier qu'il a été capturé.

Aide-mémoire

Le flux d'erreur standard (stderr) est utilisé pour les messages d'erreur et les avertissements, les maintenant séparés de la sortie normale.

Pour rediriger l'erreur standard, utilisez 2> :

ls nonexistent_folder 2> errors.txt

Le 2 fait référence au numéro du descripteur de fichier de stderr (stdout est 1, stderr est 2).

Vous pouvez rediriger à la fois stdout et stderr vers des fichiers différents :

ls existing_folder nonexistent_folder > output.txt 2> errors.txt

Pour envoyer les deux flux vers le même fichier, utilisez 2>&1 :

ls existing_folder nonexistent_folder > all_output.txt 2>&1

Essayez vous-même

Terminal
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les fondamentaux