
In Unix-ähnlichen Betriebssystemen wie Linux, macOS X und BSD wird stderr durch den POSIX-Standard definiert. Die Standarddateibeschreibernummer lautet 2 .
Im Terminal wird der Standardfehler standardmäßig auf dem Bildschirm des Benutzers angezeigt.
Stderr in der Linux-Befehlszeile
In Bash können Standardfehler in der Befehlszeile umgeleitet werden. Das Umleiten von stderr kann hilfreich sein, wenn Sie Fehlermeldungen in einer separaten Protokolldatei erfassen oder die Fehlermeldungen vollständig ausblenden möchten.
Betrachten Sie zum Beispiel den folgenden Befehl zum Suchen :
find / -iname '* etwas *'
/ usr / share / doc / etwas / usr / share / doc / etwas / beispiele / something_random find: `/ run / udisks2 ': Berechtigung abgelehnt find:` / run / wpa_supplicant': Berechtigung abgelehnt / usr / share / etwas / usr / Spiele / etwas
Wir erhalten Fehler, weil find versucht, einige Systemverzeichnisse zu durchsuchen, für die wir keine Leseberechtigung haben. Die Zeilen mit der Angabe "Permission denied" sind Fehlermeldungen und wurden in stderr geschrieben . Die anderen Zeilen wurden in stdout (Standardausgabe) geschrieben. Standardmäßig werden beide auf dem Terminal angezeigt.
Um stderr auszublenden, können wir sie umleiten, indem wir auf die Dateideskriptor-Nummer 2 von Standardfehler und einen Operator "Ausgabe umleiten" > verweisen.
find / -iname '* something *' 2> / dev / null
/ usr / share / doc / etwas / usr / share / doc / etwas / beispiele / something_random / usr / share / etwas / usr / games / etwas
Die Fehler werden nicht mehr angezeigt, da alle Ausgaben an stderr nach / dev / null umgeleitet wurden, dem speziellen Gerät in Linux, das "nirgendwo hin geht".
Wir könnten auch alle Fehler in eine Datei umleiten:
find / -iname '* something *' 2> output.txt
/ usr / share / doc / etwas / usr / share / doc / etwas / beispiele / something_random / usr / share / etwas / usr / games / etwas
Wenn Sie nun den Inhalt von output.txt überarbeiten, werden die Fehlermeldungen dort gespeichert:
cat output.txt
find: `/ run / udisks2 ': Berechtigung abgelehnt find:` / run / wpa_supplicant': Berechtigung abgelehnt
Ausführliche Informationen zum Umleiten von Datenströmen finden Sie unter Umleitung in Bash.
Fehlermeldung, Bedingungen des Betriebssystems