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_folderLe 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.txtLe 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.txtLa 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>&1Cela redirige stderr vers l’endroit où va stdout, en combinant tout dans un seul fichier.
Défi
FacileUtilisez l'opérateur 2> pour rediriger un message d'erreur vers un fichier. Exécutez ces deux commandes dans l'ordre :
- Tentez de lister un dossier appelé
missing_folderen utilisantls, et redirigez le message d'erreur vers un fichier appeléerrors.txt - Utilisez
catpour afficher le contenu deerrors.txt
Indice : Le format est
ls foldername 2> filename. Le message d'erreur va dans le fichier au lieu d'apparaître à l'écran. Utilisezcatpour 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.txtLe 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.txtPour envoyer les deux flux vers le même fichier, utilisez 2>&1 :
ls existing_folder nonexistent_folder > all_output.txt 2>&1Essayez vous-même
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
4Répertoires
Créer Un RépertoireCopier Un RépertoireDéplacer Et Renommer Un RépertoireSupprimer Un RépertoireRécapitulatif - Opérations Sur Les Répertoires7Contenu de fichier
Head et TailComptage de motsCommande SortCommande UniqBases de GrepGrep avec optionsRécap - Détective de texte10Projet Analyseur de Journaux
Aperçu du ProjetAffichage du Fichier Journal2Navigation
Afficher le répertoire de travailLister les fichiersChanger de répertoireChemins absolus vs relatifsRépertoire personnel et racineRécap - Trouver son chemin5Projet Organiser les Photos
Aperçu du ProjetCréation de la Structure8Redirection
Sortie standardÉcraser vers un fichierAjouter à un fichierEntrée standardErreur standardRécapitulatif - Constructeur de logs11Permissions
Comprendre les permissionsLire les permissionsChmod avec des nombresChmod avec des symbolesPropriété des fichiersRécapitulatif - Verrouillez tout14Projet de Script de Sauvegarde
Aperçu du ProjetObtenir le Chemin Source3Fichiers
Créer Un FichierLire Un FichierCopier Un FichierDéplacer Et Renommer Un FichierSupprimer Un FichierRécapitulatif - Opérations Sur Les Fichiers6Caractères jokers et motifs
Le joker étoileLe joker point d'interrogationJokers entre crochetsCombiner les jokersRécapitulatif - Opérations sélectives9Les pipes
Qu'est-ce qu'une pipe ?Chaîner deux commandesChaîner plusieurs commandesPipe avec GrepRécapitulatif - Pipeline de données