Menu
Coddy logo textTech

Standardfehlerausgabe

Teil des Abschnitts Grundlagen der Terminal-Journey von Coddy — Lektion 41 von 82.

Der dritte und letzte Datenstrom ist Standardfehler, abgekürzt als stderr. Dieser Strom dient speziell für Fehlermeldungen und Warnungen und hält sie getrennt von der normalen Ausgabe.

Wenn ein Befehl fehlschlägt, wird die Fehlermeldung an die Standardfehlerausgabe und nicht an die Standardausgabe ausgegeben:

ls nonexistent_folder

Die Fehlermeldung, die Sie sehen, kommt über stderr. Diese Trennung ist wichtig, weil Sie Fehler unabhängig von der regulären Ausgabe umleiten können.

Um die Standardfehlerausgabe umzuleiten, verwenden Sie 2> anstelle von >:

ls nonexistent_folder 2> errors.txt

Die 2 bezieht sich auf die Dateideskriptor-Nummer von stderr (stdout ist 1, stderr ist 2). Dieser Befehl fängt die Fehlermeldung in errors.txt ein, während er Ihren Terminal sauber hält.

Sie können beide Streams in verschiedene Dateien umleiten:

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

Die erfolgreiche Ausgabe wird nach output.txt umgeleitet, während Fehler nach errors.txt umgeleitet werden. Um beide Streams in dieselbe Datei zu senden, verwenden Sie 2>&1:

ls existing_folder nonexistent_folder > all_output.txt 2>&1

Dies leitet stderr dorthin um, wohin stdout geht, und kombiniert alles in einer Datei.

challenge icon

Aufgabe

Einfach

Verwenden Sie den 2>-Operator, um eine Fehlermeldung in eine Datei umzuleiten. Führen Sie diese zwei Befehle der Reihe nach aus:

  1. Versuchen Sie, einen Ordner namens missing_folder mit ls aufzulisten und leiten Sie die Fehlermeldung in eine Datei namens errors.txt um
  2. Verwenden Sie cat, um den Inhalt von errors.txt anzuzeigen

Hinweis: Das Format ist ls foldername 2> filename. Die Fehlermeldung wird in die Datei geschrieben, anstatt auf dem Bildschirm zu erscheinen. Verwenden Sie cat, um zu überprüfen, ob sie erfasst wurde.

Spickzettel

Der Standardfehler-Strom (stderr) wird für Fehlermeldungen und Warnungen verwendet, um sie von der normalen Ausgabe zu trennen.

Um den Standardfehler umzuleiten, verwenden Sie 2>:

ls nonexistent_folder 2> errors.txt

Die 2 bezieht sich auf die Dateideskriptor-Nummer von stderr (stdout ist 1, stderr ist 2).

Sie können stdout und stderr in unterschiedliche Dateien umleiten:

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

Um beide Streams in dieselbe Datei umzuleiten, verwenden Sie 2>&1:

ls existing_folder nonexistent_folder > all_output.txt 2>&1

Probier es selbst

Terminal
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen