Wie man stderr in bash zu stdout umleitet

Wie man stderr in bash zu stdout umleitet
Befehle in Linux nehmen einige Eingaben vom Benutzer ab, bei der es sich um eine Datei oder ein beliebiges Attribut handelt. Nach Ausführung geben sie eine Ausgabe, die als Standardausgabe bezeichnet wird. Die Standardausgabe kann eine Erfolgsausgabe oder eine Fehlerausgabe sein. Beide werden auf Ihrem Terminalbildschirm angezeigt. In einigen Fällen möchten Sie jedoch Standardausgänge in eine Datei zum Testen oder Debuggen des Codes speichern. In Linux können diese Ausgänge in eine Datei umgeleitet werden, und der Prozess der Aufnahme, die als Umleitung bezeichnet wird.

Jeder Prozess in Linux erzeugt drei Datenströme, "Stdin", "Stdout" und "Stderr":

  • Stdin: Nimmt die Eingabe vom Benutzer über die Tastatur ein
  • Stdout: Zeigt die Ausgabe auf dem Bildschirm an
  • Stderr: Zeigt Fehlerinformationen auf dem Bildschirm an

Jeder Datenstrom hat eine numerische ID:

Numerische ID Name
0 Stdin
1 Stdout
2 Stderr

Erklären wir die Umleitung ein bisschen mehr mit Details:

So leiten Sie die Standardausgabe und den Standardfehler in Bash um:

Um die Standardausgabe des Befehls umzuleiten, werden wir „1“ mit einem Umleitungsoperator verwenden, der größer ist als das „>“ -Styp:

$ ls 1> stdout.txt

Der obige Befehl erstellt eine Datei und platziert die Standardausgabe des Befehls „LS“ im „stdout“.txt ”Datei.

Das „stdout“ lesen.TXT ”-Datei, verwenden Sie:

$ cat stdout.txt

Wir können den Standardfehler auch in eine Datei umleiten, indem wir den Befehl verwenden:

$ cat myfile.txt 2> stderr.txt

Um das „stderr anzusehen.TXT ”-Datei, verwenden Sie:

$ cat stderr.txt

Stellen Sie sicher, dass "2" größer als das ">" -Styp. Da gibt es keine „Myfile.TXT ”-Datei im Verzeichnis, der Befehl„ cat “gibt einen Fehler an, der im" Stderr "hinzugefügt wird.txt ”Datei.

Diese Standardausgänge können auch mit einem einzigen Befehl umgeleitet werden, verwenden Sie:

$ ls 1> stdout.txt 2> stderr.txt

Die Ausgabe des Befehls „LS“ wird in die “geschriebenStdout.txtDatei, aber die “Stderr.txtWird leer bleiben, weil es keinen Fehler geben würde.

Jetzt tun wir für „Stderr.txt":

$ cat myfile.txt 1> stdout.txt 2> stderr.txt

Verwenden Sie den unten erwähnten Befehl, um „Stderr“ zu lesen.txt.”

$ cat stderr.txt

Und natürlich „Stdout.txt ”wird leer sein.

Abschluss:

Der Befehl Linux beim Ausführen ergibt eine Standardausgabe, die eine Erfolgsausgabe oder eine Fehlerausgabe sein kann. Im Allgemeinen können diese Ausgänge nicht unter Verwendung von Umleitungsoperatoren umgeleitet werden. Wir müssen bestimmte numerische IDs mit dem Zeichen ">" verwenden. In diesem Handbuch haben wir gelernt, diese numerischen Schlüssel zu verwenden, um die Standardausgabe in eine Datei mit Beispielen umzuleiten.