
Wie kann ich die Bildschirmausgabe (printf) einer Shell-Anwendung in Linux ausblenden?
Antwort1
Sie können die Ausgabe jedes Programms umleiten, sodass sie nicht angezeigt wird.
$ program > /dev/null
Dadurch wird die Standardausgabe umgeleitet. Sie werden weiterhin alle Fehler sehen
$ program &> /dev/null
Dadurch wird die gesamte Ausgabe umgeleitet, einschließlich Fehler.
Antwort2
Auf der Befehlszeile stehen drei E/A-Geräte zur Verfügung.
standard input - 0
standard output - 1
standard error - 2
Um die Standardausgabe (die Standardausgabe) in eine Datei umzuleiten (und die Datei zu überschreiben), verwenden Sie
command > file.log
Um an file.log anzuhängen, verwenden Sie zwei >
s
command >> file.log
Um die Standardfehlermeldung in die Datei „file.log“ umzuleiten, verwenden Sie
command 2> file.log
Und zum Anhängen
command 2>> file.log
Um die Ausgaben in einem Stream zu kombinieren und sie alle an einen Ort zu senden
command > file.log 2>&1
Dies sendet 2 (Standardfehler) an 1 (Standardausgabe) und sendet die Standardausgabe an file.log
Beachten Sie, dass es auch möglich ist, die Standardeingabe in einen Befehl umzuleiten, der eine Standardeingabe erwartet
command << file.txt
Weitere Einzelheiten finden Sie imErweitertes Bash-Scripting-Handbuch.
Antwort3
Standardausgabe ausblenden:
./command >/dev/null
Standard- und Fehlerausgaben ausblenden:
./command >/dev/null 2>&1
Standardausgabe und Fehlerausgaben ausblenden und Terminal freigeben (Befehl im Hintergrund ausführen):
./command >/dev/null 2>&1 &
Antwort4
FürMac OS X v10.6(Schneeleopard):
Wenn Sie die Ausgabe verbergen müssen, ohne das Programm durch Prüfen des Ausgabe-/Fehlerdateideskriptors darüber zu informieren, können Sie Folgendes in einer Shell versuchen:
stty flusho; command ;stty -flusho
oder wenn Sie nebenbei einfach nur die Eingabe vom Terminal verbergen möchten:
stty -echo; command ;stty echo
Weitere Informationen finden Sie auf der Manualpage stty(1).
Für Linux weiß ich nur, dassUbuntu 10.04(Lucid Lynx) und einige Debian/Arch Linux (unten kommentiert – danke, Hendry) haben die Einstellung nicht flusho
(und ich kann in der Manpage nichts anderes Passendes finden). Die echo
Einstellung funktioniert jedenfalls unter Ubuntu.