Ich weiß so viel:
$ command 2>> error
$ command 1>> output
Gibt es eine Möglichkeit, den stderr in die Fehlerdatei und den stdout in die Ausgabedatei in derselben Bash-Zeile auszugeben?
Fügen Sie sie einfach in einer Zeile hinzu command 2>> error 1>> output
Beachten Sie jedoch, dass dies >>
zum Anhängen dient, wenn die Datei bereits Daten enthält. Während, >
werden alle vorhandenen Daten in der Datei überschreiben.
Also, command 2> error 1> output
wenn Sie nicht anhängen möchten.
Nur zur Vervollständigung können Sie so schreiben, 1>
als ob >
der Standard-Dateideskriptor die Ausgabe ist. so 1>
und >
ist das gleiche.
So command 2> error 1> output
wird,command 2> error > output
1>
geschrieben werden kann als>
command &2>err.log
, ich denke, ich bin total verwirrend Sintaxien. (Ein Link zu einer angemessenen Antwort aller Bash-Pipe-Ismen könnte in Ordnung sein)command &2>err.log
es nicht ganz legitim - das kaufmännische Und in dieser Syntax wird für den Dateideskriptor als Ziel verwendet, z. B.command 1>&2
würde stdout zu stderr umgeleitet.Versuche dies:
Mehr Informationen
Die Ziffern
0
durch9
sind Dateideskriptoren in Bash.0
steht für Standardeingabe,1
steht für Standardausgabe,2
steht für Standardfehler.3
bis9
sind für jede andere vorübergehende Verwendung frei.Jeder Dateideskriptor kann mithilfe des Operators in eine Datei oder in einen anderen Dateideskriptor umgeleitet werden
>
. Sie können stattdessen den Operator verwenden>>
, um an eine Datei anzuhängen, anstatt eine leere zu erstellen.Verwendung:
Weitere Informationen finden Sie im Advanced Bash-Scripting-Handbuch: Kapitel 20. E / A-Umleitung .
quelle
So wie das:
quelle
Oder wenn Sie Ausgaben (stdout & stderr) in einer einzigen Datei mischen möchten, möchten Sie möglicherweise Folgendes verwenden:
quelle
Die Ausgabe mehrerer Befehle kann umgeleitet werden. Dies funktioniert entweder für die Befehlszeile oder am nützlichsten in einem Bash-Skript. Das
-s
leitet die Passwortabfrage auf den Bildschirm.Hereblock cmds stdout / stderr werden an separate Dateien gesendet und nichts angezeigt.
Hereblock cmds stdout / stderr werden an eine einzelne Datei gesendet und angezeigt.
Hereblock cmds stdout / stderr werden an separate Dateien gesendet und stdout zur Anzeige.
Abhängig davon, wer Sie sind (whoami) und Benutzername, kann ein Passwort erforderlich sein oder nicht.
quelle