In bash wird durch Aufrufen von foo
jegliche Ausgabe dieses Befehls auf der Standardausgabe angezeigt.
Durch Aufrufen von foo > output
wird jegliche Ausgabe dieses Befehls in die angegebene Datei umgeleitet (in diesem Fall 'output').
Gibt es eine Möglichkeit, die Ausgabe in eine Datei umzuleiten und sie gleichzeitig auf der Standardausgabe anzuzeigen?
6 Stimmen
Wenn jemand hier gelandet ist, der nach dem Erfassen von Fehlerausgaben in Datei sucht, schauen Sie sich - unix.stackexchange.com/questions/132511/… an.
9 Stimmen
Eine Anmerkung zur Terminologie: Wenn Sie
foo > output
ausführen, werden die Daten wirklich in stdout geschrieben, und stdout ist die Datei mit dem Namenoutput
. Das bedeutet, dass das Schreiben in die Datei das gleiche ist wie das Schreiben in stdout. Sie fragen, ob es möglich ist, sowohl in stdout als auch in das Terminal zu schreiben.4 Stimmen
@WilliamPursell Ich bin mir nicht sicher, ob Ihre Klarstellung die Dinge verbessert :-) Wie wäre es damit: OP fragt, ob es möglich ist, die Standardausgabe des aufgerufenen Programms sowohl in eine Datei als auch in die Standardausgabe des aufrufenden Programms zu leiten (letzteres wäre die Standardausgabe, die das aufgerufene Programm erben würde, wenn nichts Besonderes getan würde; d.h. das Terminal, wenn das aufrufende Programm eine interaktive Bash-Sitzung ist). Und vielleicht möchten sie auch die Standardfehlerausgabe des aufgerufenen Programms ähnlich leiten ("jede Ausgabe dieses Befehls" könnte vernünftigerweise so interpretiert werden, dass auch stderr eingeschlossen ist).
0 Stimmen
Wenn wir mehrere Befehle haben, deren Ausgaben umgeleitet werden sollen, verwenden Sie
( )
. Zum Beispiel(echo hallo; echo welt) | tee ausgabe.txt