Wie verstecke ich die Bildschirmausgabe (printf) einer Shell-Anwendung unter Linux?
Wie verstecke ich die Bildschirmausgabe (printf) einer Shell-Anwendung unter Linux?
Antworten:
Sie können die Ausgabe eines Programms so umleiten, dass sie nicht angezeigt wird.
$ program > /dev/null
Dadurch wird die Standardausgabe umgeleitet. Es werden weiterhin Fehler angezeigt
$ program &> /dev/null
Dadurch werden alle Ausgaben, einschließlich der Fehler, umgeleitet.
wget
Sie können -q
Optionen , um es ruhig zu machen.
In der Befehlszeile stehen drei E / A-Geräte zur Verfügung.
standard in - 0
standard out - 1
standard error - 2
Verwenden Sie, um Standardausgabe (die Standardausgabe) in eine Datei umzuleiten (und die Datei zu überschreiben)
command > file.log
Verwenden Sie zum Anhängen an file.log 2> s
command >> file.log
Um Standardfehler in die Datei file.log umzuleiten, verwenden Sie
command 2> file.log
und anhängen
command 2>> file.log
Kombinieren Sie die Ausgaben zu einem Stream und senden Sie sie alle an einen Ort
command > file.log 2>&1
Dies sendet 2 (stderr) in 1 (stdout) und sendet stdout an file.log
Beachten Sie, dass es auch möglich ist, standard in in einen Befehl umzuleiten, der stdin erwartet
command << file.txt
BEARBEITEN
Weitere Informationen finden Sie im Advanced Bash Scripting Guide
command > file.log 2>&1
funktioniert?
> file
und der zweite ist 2>&1
. Der erste leitet den Standard in eine Datei um. Der zweite nimmt den zweiten Dateideskriptor und leitet ihn zum ersten weiter. Sie können den umgekehrten Vorgang ausführen, indem Sie die Standardausgabe mit in den Standardfehler >&2
umleiten und dann den Standardfehler mit in eine Datei umleiten 2> file
.
Verbergen, verstecken stdout
./command >/dev/null
Verstecke stdout
undstderr
./command >/dev/null 2>&1
Terminal ausblenden stdout
und stderr
freigeben (Befehl im Hintergrund ausführen)
./command >/dev/null 2>&1 &
Wenn Sie die Ausgabe nur ausblenden (und nicht in einer Datei speichern) möchten, können Sie Folgendes verwenden:
Bearbeitet:
$ command &> / dev / null
Für Mac OS X (10.6 "Snow Leopard"):
Wenn Sie die Ausgabe ausblenden müssen, ohne das Programm darüber zu informieren, indem Sie den Ausgabe- / Fehlerdateideskriptor überprüfen, können Sie versuchen, Folgendes in einer Shell zu verwenden:
stty flusho; command ;stty -flusho
oder wenn du übrigens nur die eingabe vom terminal verbergen willst:
stty -echo; command ;stty echo
Weitere Informationen finden Sie in der stty (1) -Handbuchseite
Für Linux weiß ich nur, dass Ubunutu (10.04 "Lucid") und einige "Debian / Arch" (unten kommentiert - tnx hendry) diese flusho
Einstellung nicht haben (und ich kann nichts anderes in der Manpage sehen). . Die echo
Einstellung funktioniert auf dem Ubuntu trotzdem.