Alle POSIX-Betriebssysteme haben 3 Streams:stdin, stdout und stderr. stdin ist die Eingabe, die stdout oder stderr akzeptieren kann. stdout ist die primäre Ausgabe, die mit >
umgeleitet wird , >>
, oder |
. stderr ist die Fehlerausgabe, die separat behandelt wird, damit keine Ausnahmen an einen Befehl weitergegeben oder in eine Datei geschrieben werden, die beschädigt werden könnte; Normalerweise wird dies an eine Art Protokoll gesendet oder direkt ausgegeben, selbst wenn die Standardausgabe umgeleitet wird. Um beide an denselben Ort umzuleiten, verwenden Sie:
$command &> /some/file
BEARBEITEN :Danke an Zack für den Hinweis, dass die obige Lösung nicht portabel ist – verwenden Sie stattdessen:
$command > file 2>&1
Wenn Sie den Fehler stummschalten möchten, tun Sie Folgendes:
$command 2> /dev/null
Dieser Teil wird in stderr geschrieben, verwenden Sie 2>
es umzuleiten. Zum Beispiel:
foo > stdout.txt 2> stderr.txt
oder wenn Sie in derselben Datei wollen:
foo > allout.txt 2>&1
Hinweis:Dies funktioniert in (ba)sh, überprüfen Sie Ihre Shell auf die richtige Syntax