Im Folgenden wird die Standardausgabe an das Nullgerät (Bit-Bucket) gesendet.
scriptname >/dev/null
Und wenn Sie auch möchten, dass Fehlermeldungen dorthin gesendet werden, verwenden Sie eine der folgenden Optionen (die erste funktioniert möglicherweise nicht in allen Shells):
scriptname &>/dev/null
scriptname >/dev/null 2>&1
scriptname >/dev/null 2>/dev/null
Wenn Sie die Nachrichten aufzeichnen, aber nicht sehen möchten, ersetzen Sie sie /dev/null
durch eine tatsächliche Datei, z.
scriptname &>scriptname.out
Der Vollständigkeit halber lautet es unter Windows cmd.exe (wobei "nul" das Äquivalent von "/ dev / null" ist):
scriptname >nul 2>nul
echo foo > $(tty)
ein Skript einfügen und ausführen./test.sh &> /dev/null
- Die Ausgabe wird weiterhin auf dem Terminal gedruckt. Dies ist natürlich kein Problem, wenn Sie ein Skript schreiben, das keine solchen Befehle verwendet./dev/null
existiert in Cygwin, Sie müssen es nicht verwendennul
.Etwas wie
Dies verhindert die Standardausgabe und die Fehlerausgabe und leitet beide an um
/dev/null
.quelle
2>/dev/null
Versuchen
:
ist die Abkürzung für "nichts tun".$()
ist nur dein Befehl.quelle
0
(Erfolg). Sehen wir uns ein Beispiel mit einem Befehl anfalse
, der immer zurückgibt1
(Fehler). Zum Beispiel( echo foo | tee file ; false ) && echo bar
Anzeigenfoo
. Verwenden Sie Ihren Trick, um die Ausgabe zu unterdrücken :( : $(echo foo | tee file ; false) ) && echo bar
. Es wird jedoch angezeigt,bar
was bedeutet, dass der Rückgabestatuscode lautet0
(dies ist nicht der zurückgegebene Statuscode vonfalse
). Bitte aktualisieren Sie Ihre Antwort unter Berücksichtigung dieser Einschränkung. ProstDUMMY=$(yourcommand)
? Es gibt nicht die von Ihnen erwähnte Einschränkung. :)DUMMY=$( echo foo | tee file ; false ) && echo bar
zeigt nichts an. Und der Befehl wirdDUMMY=$( echo foo | tee file ; true ) && echo bar
angezeigtbar
. Lassen Sie mich wissen, wenn Sie eine Antwort geben, um es zu verbessern ;-) ProstEine Alternative, die in einigen Situationen passen kann, besteht darin, das Ergebnis eines Befehls einer Variablen zuzuweisen:
Da Bash und andere POSIX-Befehlszeileninterpreter Variablenzuweisungen nicht als Befehl betrachten, wird der Rückkehrcode des vorliegenden Befehls eingehalten.
Hinweis: Die Zuweisung mit dem Schlüsselwort
typeset
oderdeclare
wird als Befehl betrachtet. Der ausgewertete Rückkehrcode für den Fall ist also die Zuweisung selbst und nicht der in der Subshell ausgeführte Befehl:quelle
Verwenden Sie dies wie den Beitrag von andynormancx (wenn Sie in einer Unix-Umgebung arbeiten):
Oder Sie können dies verwenden (wenn Sie in einer Windows-Umgebung arbeiten):
quelle
> nul
Windows mit Cygwin oder Git Bash gearbeitet haben und jetzt mit einernul
Datei feststecken , die nicht gelöscht werden kann, versuchen Sie es bitte mit dieser Antwort . Sie hat wie ein Zauber funktioniert.Schauen Sie sich dieses Beispiel aus dem Linux-Dokumentationsprojekt an :
Sie können jedoch diese einfache Umleitung verwenden:
quelle
In Ihrem Skript können Sie den Zeilen, von denen Sie wissen, dass sie eine Ausgabe liefern, Folgendes hinzufügen:
Oder Sie können es auch versuchen
quelle
>>
)?