titel Wie kann ich mit Bash Scripting die gesamte Ausgabe eines Befehls unterdrücken?




title tag länge (6)

Etwas wie

script > /dev/null 2>&1

Dies verhindert die Ausgabe und Ausgabe von Standardausgaben und leitet sie an /dev/null .

Ich habe ein Bash-Skript, das ein Programm mit Parametern ausführt. Dieses Programm gibt einen Status aus (tut dies, macht das ...). Es gibt keine Option für dieses Programm, um ruhig zu sein. Wie kann ich verhindern, dass das Skript etwas anzeigt?

Ich suche etwas wie Windows "Echo aus".


Wie andynormancx post verwenden Sie dies: (wenn Sie in einer Unix-Umgebung arbeiten)

scriptname > /dev/null

oder Sie können dies verwenden: (wenn Sie in einer Windows-Umgebung arbeiten)

scriptname > nul

In Ihrem Skript können Sie den Zeilen, von denen Sie wissen, dass sie eine Ausgabe ergeben, Folgendes hinzufügen:

some_code 2>>/dev/null

Oder Sie können es auch versuchen

some_code >>/dev/null

Folgendes sendet die Standardausgabe an das Nullgerät (Bit-Bucket).

scriptname >/dev/null

und wenn Sie auch Fehlermeldungen senden möchten, verwenden Sie eine der ersten (die möglicherweise nicht in allen Shells funktioniert):

scriptname &>/dev/null
scriptname >/dev/null 2>&1
scriptname >/dev/null 2>/dev/null

Wenn Sie die Nachrichten aufzeichnen möchten, diese jedoch nicht sehen möchten, ersetzen Sie /dev/null durch eine tatsächliche Datei, z.

scriptname &>scriptname.out

Der Vollständigkeit halber lautet unter Windows cmd.exe (wobei "nul" das Äquivalent zu "/ dev / null" ist):

scriptname >nul 2>nul

Versuchen

: $(yourcommand)

: ist kurz für "nichts tun".

$() ist nur dein Befehl.


Sehen Sie sich dieses Beispiel aus dem Linux-Dokumentationsprojekt an :

3.6 Beispiel: Datei stderr und stdout 2

Dadurch wird jede Ausgabe eines Programms in eine Datei gestellt. Dies ist manchmal für Cron-Einträge geeignet, wenn Sie möchten, dass ein Befehl absolute Stille übergibt.

     rm -f $(find / -name core) &> /dev/null 

Das heißt, Sie können diese einfache Umleitung verwenden:

/path/to/command &>/dev/null






echo