GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich die Ausgabe einer Shell-Anwendung in Linux ausblenden?

Lösung 1:

Sie können die Ausgabe jedes Programms umleiten, sodass sie nicht gesehen 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.

Lösung 2:

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

Verwenden Sie zum Anhängen an file.log zwei > s

 command >> file.log

Verwenden Sie

, um den Standardfehler auf die Datei „file.log“ umzuleiten
 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) in 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 im Advanced Bash Scripting Guide.

Lösung 3:

Standardausgabe ausblenden:

./command >/dev/null

Standardausgabe und Standardfehler ausblenden:

./command >/dev/null 2>&1

Standardausgabe und Standardfehler ausblenden und Terminal freigeben (Befehl im Hintergrund ausführen):

./command >/dev/null 2>&1 &

Lösung 4:

Wenn Sie die Ausgabe nur ausblenden (und nicht in einer Datei speichern) möchten, können Sie Folgendes verwenden:

Bearbeitet:

$ Befehl &> /dev/null

Lösung 5:

Für Mac OS X v10.6 (Snow Leopard):

Wenn Sie die Ausgabe verstecken müssen, ohne das Programm darüber in Kenntnis zu setzen, indem Sie den Deskriptor der Ausgabe-/Fehlerdatei überprüfen, können Sie versuchen, Folgendes in einer Shell zu verwenden:

stty flusho; command ;stty -flusho

oder wenn Sie nur nebenbei Eingaben vom Terminal ausblenden möchten:

stty  -echo; command ;stty  echo

Weitere Informationen finden Sie auf der Manpage stty(1).

Für Linux weiß ich nur, dass Ubuntu 10.04 (Lucid Lynx) und einige Debian/Arch-Linux (unten kommentiert - danke, Hendry) nicht den flusho haben Einstellung (und ich kann in der Manpage nichts anderes Passendes sehen). Die echo Einstellung funktioniert auf Ubuntu trotzdem.


Linux
  1. Wie weist man die Ausgabe eines Befehls einer Shell-Variablen zu?

  2. So ändern Sie die Standard-Shell in Linux

  3. So ändern Sie die Standard-Shell in Linux

  4. Wie kann ich die Zeilen in einer Datei mit Standardwerkzeugen unter Red Hat Linux zufällig anordnen?

  5. Wie kann ich den Tastaturstatus unter Linux abrufen?

So installieren Sie Fish, die freundliche interaktive Shell, unter Linux

So ändern Sie die Standard-Shell im Linux-System

Wie kann ich eine Division mit Variablen in einer Linux-Shell durchführen?

Wie kann ich tcpdump in eine Datei schreiben und die entsprechenden Daten standardmäßig ausgeben lassen?

Wie kann ich die Symbolleiste in Emacs dauerhaft ausblenden?

Die Ausgabe eines Shell-Befehls nur bei Erfolg ausblenden?