Bash-Ausgabe unterdrücken

Dr. Muhammad Abdullah 8 Oktober 2023
  1. Einführung in Shell und Skripting
  2. Befehlsausgabe im Bash-Skript unterdrücken
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.

Verwandter Artikel - Bash Output