So verwenden Sie die Stdin-, Stderr- und Stdout-Streams in Bash

Beim Start des Linux-Betriebssystems werden drei Streams geöffnet. Dies sind stdin, stdout und stderr. Die vollständige Form von stdin ist die Standardeingabe, die verwendet wird, um eine Eingabe vom Benutzer entgegenzunehmen. Die vollständige Form von stdout ist die Standardausgabe, die zum Speichern der Ausgabe des Befehls im stdout-Stream verwendet wird. Die vollständige Form von stderr ist der Standardfehler, der zum Speichern der Fehlermeldung verwendet wird, die von einem beliebigen Befehl im Datenstrom generiert wird. Die Verwendung dieser Streams wird in diesem Tutorial gezeigt. Die entsprechenden numerischen Bezeichnerwerte von stdin, stdout und stderr sind 0, 1 und 2.

Umleitungsoperatoren von Stdin, Stdout und Stderr

    • Für den stdin-Stream wird „<“ oder „0<“ verwendet.
    • Für den stdout-Stream wird „>“ oder „1>“ verwendet.
    • Die „2“ wird für den stderr-Stream verwendet.

Verwendung von Stdin, Stdout und Stdderr

Die Verwendung von stdin, stdout und stderr wird in diesem Teil des Tutorials anhand mehrerer Beispiele gezeigt.

Beispiel 1: Verwendung von Stdin

In diesem Beispiel wird die Methode gezeigt, den Inhalt einer Datei zu übernehmen und im Terminal auszudrucken.

Führen Sie den folgenden „cat“-Befehl aus, um eine Textdatei namens testdata.txt mit etwas Inhalt zu erstellen:

$ cat > testdata.txt

Führen Sie den folgenden „cat“-Befehl aus, um Inhalte an die Datei testdata.txt anzuhängen:

$ cat >> testdata.txt

Führen Sie den folgenden „cat“-Befehl aus, um eine Eingabe aus der Datei testdata.txt zu übernehmen und im Terminal auszugeben:

$ cat < testdata.txt

Ausgabe:

Die folgende Ausgabe wird angezeigt, nachdem die vorherigen Befehle ausgeführt und die Zeichenfolge „linuxhint.com“ und „Scripting Language“ zur Datei testdata.txt hinzugefügt wurden:


Beispiel 2: Verwendung von Stdout

In diesem Beispiel wird die Methode zum Erstellen einer Datei mit Pipe (|) und Umleitungsoperator gezeigt.

Führen Sie den folgenden Befehl aus, um Zeichenfolgendaten per Piping in die Textdatei mit dem Namen testdata2.txt zu schreiben. Die Ausgabe des Befehls „echo“ wird mithilfe des Pipe-Operators (|) an die Eingabe des Befehls „cat“ gesendet:

$ echo „Bash-Programmierung lernen“ | cat > testdata2.txt

Führen Sie den folgenden „cat“-Befehl aus, um den Inhalt der Datei testdata2.txt zu überprüfen:

$ cat testdata2.txt

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung der vorherigen Befehle. Gemäß der Ausgabe wird die Ausgabe des Befehls „echo“ in die Datei testdata2.txt geschrieben:

Führen Sie den folgenden Befehl aus, um die Ausgabe des Befehls „ls –l“ mithilfe des Umleitungsoperators (‚>‘) in eine Textdatei mit dem Namen list.txt zu schreiben:

$ ls -l > list.txt

Führen Sie den folgenden „cat“-Befehl aus, um den Inhalt der Datei list.txt zu überprüfen:

$ cat list.txt

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung der vorherigen Befehle. Gemäß der Ausgabe wird die Ausgabe des Befehls „ls –l“ in die Datei list.txt geschrieben:


Beispiel 3: Verwendung von Stdin und Stdout

In diesem Beispiel wird die Methode gezeigt, mit stdin und stdout eine Eingabe aus einer Datei zu übernehmen und in eine Datei zu schreiben.

Führen Sie den folgenden „cat“-Befehl aus, um den Inhalt der Datei testdata.txt zu übernehmen und ihn in die Datei testfile.txt und das Terminal zu schreiben:

$ cat < testdata.txt > testfile.txt

Führen Sie den folgenden „cat“-Befehl aus, um den Inhalt der Datei testdata.txt zu drucken:

$ cat testdata.txt

Führen Sie den folgenden „cat“-Befehl aus, um den Inhalt der Datei testfile.txt zu drucken:

$ cat testfile.txt

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung der vorherigen Befehle. Gemäß der Ausgabe wird der Inhalt der Datei testdata.txt in die Datei testfile.txt geschrieben und im Terminal ausgegeben:


Beispiel 4: Verwendung von Stderr

Der Inhalt des Standardfehlers kann im Terminal gedruckt oder in eine Datei umgeleitet oder an /dev/null gesendet werden, das wie der Papierkorb funktioniert. In diesem Beispiel werden die verschiedenen Möglichkeiten zur Übergabe des Standardfehlers gezeigt.

Der folgende Befehl ist gültig und gibt die Zeichenfolge „Hallo“ mit der neuen Zeile aus. Daher wird für den folgenden Befehl kein Standardfehler generiert:

$ printf „%s\n“ „Hallo“

Der folgende Befehl ist ungültig, da es keinen Befehl mit dem Namen „pirntf“ gibt. Es wird also ein Standardfehler generiert und der Fehler im Terminal ausgegeben:

$ pirntf „%s\n“ „Hallo“

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Befehls. Gemäß der Ausgabe wird der Standardfehler im Terminal ausgegeben:

Manchmal ist es erforderlich, den benutzerdefinierten Fehler auszudrucken, indem der Standardfehler ausgeblendet wird, um den Fehler für die Benutzer verständlicher zu machen. Diese Aufgabe kann durch Umleiten des Fehlers in /dev/null erledigt werden. Die „2>“ wird hier verwendet, um den Fehler nach /dev/null umzuleiten.

Führen Sie den folgenden Befehl aus, um den Fehler in /dev/null umzuleiten, wodurch kein Fehler angezeigt wird, wenn ein Fehler vorliegt:

$ pirntf „%s\n“ „Hallo“ 2> /dev/null

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Befehls. Der Ausgabe zufolge wird der Standardfehler nicht im Terminal ausgegeben, um nach /dev/null umzuleiten:

Manchmal erfordert der Standardfehler das Speichern in einer Datei zur späteren Verwendung. Diese Aufgabe kann durch Umleiten des Fehlers in eine Datei mit dem Operator „2>“ erledigt werden.

Führen Sie den folgenden Befehl aus, um den Standardfehler in eine Datei mit dem Namen errorfile.txt umzuleiten:

$ pirntf „%s\n“ „Hallo“ 2> errorfile.txt

Führen Sie den folgenden Befehl aus, um den Inhalt der Datei „errorfile.txt“ zu überprüfen:

$ cat errorfile.txt

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung der vorherigen Befehle. Der Ausgabe zufolge wird der Standardfehler ordnungsgemäß in die Datei „errorfile.txt“ geschrieben:

Der Standardfehler kann mit dem folgenden Befehl sowohl in /dev/null als auch in die Datei errorfile.txt umgeleitet werden:

$ pirntf „%s\n“ „Hallo“ 2> /dev/null > errorfile.txt

Abschluss

Die Verwendung von stdin, stdout und stderr wird in diesem Tutorial anhand mehrerer Beispiele erläutert, die Linux-Benutzern helfen, das Konzept dieser Streams zu verstehen und sie bei Bedarf richtig zu verwenden.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen