Bash-Ausgabe unterdrücken
In diesem Artikel werden Methoden erläutert, um die Ausgabe von Befehlen mit Bash zu unterdrücken. Darüber hinaus werden wir uns auch mit der Umleitung der Ausgabe in eine Datei zur späteren Verwendung befassen.
Einführung in Shell und Skripting
Shell ist ein Programm, das eine Befehlszeilenschnittstelle in Linux ausführt. Unter Linux können alle Benutzer viele verschiedene Shells verwenden.
Üblicherweise wird in vielen Linux-Distributionen eine Standard-Bourne-Again-Shell (Bash) von GNU verwendet.
Eine Datei, die eine Reihe von Befehlen enthält, wird als Skript bezeichnet. Diese Datei wird mit dem Bash-Programm gelesen und ausgeführt.
Nehmen wir zum Beispiel an, eine Datei mit dem Namen First.sh
hat folgenden Inhalt:
#!/bin/bash
echo "Hello"
echo "World"
Im obigen Beispiel ist First.sh
eine Skriptdatei, die zwei echo
-Befehle enthält, die Hello World
auf dem Terminal anzeigen, wenn das Skript ausgeführt wird. Die erste Zeile, #!/bin/bash
, kennzeichnet den Speicherort des Interpreters, der zum Ausführen des Skripts verwendet werden soll.
Wir können das Bash-Skript auf dem Linux-Terminal auf zwei verschiedene Arten ausführen.
bash First.sh
Ausgang:
Hello
World
./First.sh
Ausgang:
Hello
World
Befehlsausgabe im Bash-Skript unterdrücken
Wir können die Ausgabe aller in einem Bash-Skript geschriebenen Befehle während der Ausführung eines Bash-Skripts unterdrücken. Wir können die Ausgabe auf ein null
-Gerät umleiten.
Wollen wir beispielsweise die Ausgabe des Skripts First.sh
unterdrücken, können wir folgenden Befehl verwenden.
./First.sh > /dev/null
Dieser Befehl unterdrückt die Ausgabe des Skripts First.sh
und zeigt nichts auf dem Terminal an. Wenn das Skript First.sh
jedoch einen Fehler enthält, wird dieser trotzdem auf dem Terminal angezeigt.
Betrachten Sie den folgenden Befehl im Skript First.sh
.
#!/bin/bash
echo "Hello
echo "World"
Im Skript fehlt "
im ersten echo
-Befehl. Die Ausgabe des folgenden Skripts, das mit ./First.sh
ausgeführt wird, lautet wie folgt:
./First.sh: line 3: unexpected EOF while looking for matching `"'
./First.sh: line 4: syntax error: unexpected end of file
Wenn wir dieses Skript mit dem Befehl ./First.sh > /dev/null
ausführen, wird die gleiche Ausgabe angezeigt.
./First.sh: line 3: unexpected EOF while looking for matching `"'
./First.sh: line 4: syntax error: unexpected end of file
Fehler eines Bash-Skripts unterdrücken
Wenn ein Bash-Skript einen Fehler enthält, unterdrückt der Befehl ./scriptname > dev/null
den Fehler nicht und zeigt den Fehler auf dem Terminal an, wie oben beschrieben.
Wir können den Fehler auch vom Terminal aus unterdrücken. Die folgenden Befehle können die Ausgabe und den Fehler des Terminals beim Ausführen des Bash-Skripts First.sh
unterdrücken.
./First.sh &>/dev/null
./First.sh >/dev/null 2>&1
./First.sh >/dev/null 2>/dev/null
Der erste Befehl ./First.sh &>/dev/null
funktioniert möglicherweise nicht für alle Linux-Shells.
Aufzeichnen oder Speichern der Ausgabe von Bash-Skripten
Die Ausgabe wird unterdrückt, wenn wir während der Ausführung des Bash-Skripts das /dev/null
verwenden. Wir können die Ausgabe jedoch in benutzerdefinierten Dateien speichern oder aufzeichnen.
Betrachten Sie das folgende First.sh
-Skript.
#!/bin/bash
echo "Hello"
echo "World"
Mit dem folgenden Befehl können wir das Skript First.sh
ausführen, um die Bash-Ausgabe zu speichern oder aufzuzeichnen.
./First.sh > outputfile.out
Wenn wir den obigen Befehl ausführen, wird auf dem Terminal nichts angezeigt. es wird jedoch eine neue Datei mit dem Namen outputfile.out
erstellt (falls noch nicht vorhanden), und der Inhalt der Datei ist:
Hello
World
Wenn die outputfile.out
bereits existiert, wird der vorhandene Inhalt lackiert und die neue Ausgabe des Skripts in der Datei gespeichert.