UnixTools01 11

From
Revision as of 12:51, 29 November 2024 by Jpr (talk | contribs) (Created page with "= Redirection - part 2 = == Umlenken von stderr == Es ist Konvention, dass Programme ihre gewöhnlicheAusgabe auf den Ausgabekanal '''stdout''' schrieben und Fehlernachrichten auf einen anderen Kanal, namens '''stderr'''. Normalerweise sind beide Kanäle mit dem Bilschrim verbunden, d.h. egal ob das >Programm eine normale Ausgabe über '''stdout''' ausgibt, oder eine Fehlernachricht über '''stsderr''', sie erscheinen beide auf dem Bildschirm. Weiter haben wir geseh...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Redirection - part 2

Umlenken von stderr

Es ist Konvention, dass Programme ihre gewöhnlicheAusgabe auf den Ausgabekanal stdout schrieben und Fehlernachrichten auf einen anderen Kanal, namens stderr.


Normalerweise sind beide Kanäle mit dem Bilschrim verbunden, d.h. egal ob das >Programm eine normale Ausgabe über stdout ausgibt, oder eine Fehlernachricht über stsderr, sie erscheinen beide auf dem Bildschirm. Weiter haben wir gesehen, dass man mit > datei den Ausgabekanal stdout in eine Datei umlenken kann

 $ ls -la /bin > /tmp/files.txt

Im obigen Beispiel würde das kommando ls' seine Ausgabe (die Liste von Dateien) in die Datei /tmp/files.txt schreiben. Sollten dabei Fehler auftreten, würden diese aber weiterhin auf dem Bildschrim erscheinen, weil stderr noch nicht umgelenkt wurde.

 $ ls -lisa 2> /tmp/errors.txt

Mit 2> datei kann man nun den Ausgabekanal stderr in eine Datei umlenken. Im Obigen Beispiel würden also die normalen Ausgaben auf dem Bildschirm erscheinen (weil stdout nicht umgelenkt wurde), alle Fehlernachrichten würden dagegen in die Datei /tmp/errors.txt geschrieben (umgelenkt) werden.

 $ ls -lisas > /tmp/files.txt 2> /tmp/errors.txt

Es ist auch möglich, stdout in eine Datei und stderr in eine ander Datei umzulenken.

2>&1

Normalerweise ist es eine gute Sache, für die normalen Ausgaben (stdout) und Fehlernachrichten (stderr) getrennt entscheiden zu können, ob und wohin sie umgelenkt werden. Manchmal mchte man sie einfach zu einem Kanal zusammenfassen. Mit 2>&1 legen wir fest, dass stderr (ebenfalls) dorthin umgelenkt wird, wohin gerade stdout umgelenkt ist.

Pipes