1603 Stimmen

Wie man die Ausgabe in eine Datei und stdout umleitet

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 Namen output. 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).

-17voto

kal Punkte 27327

Tee ist perfekt dafür, aber das wird auch funktionieren

ls -lr / > output | cat output

11 Stimmen

Das ist ein Fehler, wenn die Ausgabe noch nicht vorhanden ist und es tut nicht das, was du möchtest, wenn sie existiert, insgesamt ist es unsinnig. Vielleicht meintest du ";" anstelle von "|" ?

8 Stimmen

Auch wenn Sie ein ; verwenden, würde die Ausgabe während eines langsamen Befehls stark verzögert werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X