Leiten Sie Stderr und Stdout in eine Datei in Bash um

Abid Ullah 15 Februar 2024
  1. Standardausgabe und Standardfehler in Linux
  2. Leiten Sie die Standardausgabe in eine Datei in Bash um
  3. Leiten Sie den Standardfehler in eine Datei in Bash um
  4. Leiten Sie die Standardausgabe und den Standardfehler in eine Datei in Bash um
Leiten Sie Stderr und Stdout in eine Datei in Bash um

Dieser Artikel behandelt die Standardausgabe und den Standardfehler in Linux. Wir werden sehen, wie wir die Standardausgabe und den Standardfehler in Bash umleiten können.

Beginnen wir mit dem Verständnis der Begriffe Standardausgabe und Standardfehler in Linux.

Standardausgabe und Standardfehler in Linux

In Linux nehmen Befehle einige Eingaben vom Benutzer entgegen, die eine Datei oder ein beliebiges Attribut sein können. Wenn wir diese Befehle ausführen, geben sie eine Ausgabe der von uns eingegebenen Eingaben aus, die als Standardausgabe bezeichnet wird.

Diese Standardausgabe kann ein Erfolg oder ein Fehler sein. Wenn die Ausgabe, die wir erhalten, ein Fehler ist, nennen wir dies Standardfehler.

Beide werden auf unserem Terminalbildschirm angezeigt. Manchmal möchten wir die Standardausgabe und den Standardfehler in einer Datei speichern, um den Code zu testen oder zu debuggen.

Unter Linux können wir diese beiden Ausgaben in eine Datei umleiten, und der Prozess, der sie speichert, wird als Umleitung bezeichnet.

In Linux haben wir für jeden Prozess drei Datenströme, Standard Input (stdin), Standard Output (stdout) und Standard Error (stderr).

Die Standardeingabe (stdin) nimmt Eingaben des Benutzers über die Tastatur entgegen. Die Standardausgabe (stdout) zeigt die Ausgabe auf dem Terminalbildschirm an.

Der Standardfehler (stderr) zeigt die Fehlerinformationen auf dem Bildschirm an. Standardmäßig werden sowohl die Standardausgabe als auch der Standardfehler auf dem Terminalbildschirm gedruckt.

Unter Linux hat jeder Datenstrom eine eindeutige numerische ID:

  • Für die Standardeingabe (stdin) ist die numerische ID 0.
  • Für die Standardausgabe (stdout) ist die numerische ID 1.
  • Für Standardfehler (stderr) ist die numerische ID 2.

Lassen Sie uns die Umleitung der Standardausgabe und des Standardfehlers genauer erläutern.

Leiten Sie die Standardausgabe in eine Datei in Bash um

Unter Linux können wir die stdout mithilfe ihrer numerischen ID in eine Datei umleiten. Um die Standardausgabe eines beliebigen Befehls umzuleiten, verwenden wir 1 mit einer Umleitungsoperation, die das Zeichen > ist.

In unserem Beispiel verwenden wir den Befehl ls. Wir werden die Ausgabe des Befehls ls in eine Datei umleiten.

Dann sehen wir uns die Textdatei an, um die Ausgabe des in der Datei gespeicherten Befehls ls zu sehen.

Beispielcode:

$ ls 1> stdout.txt

Um die Datei anzuzeigen, verwenden wir diesen Befehl:

$ cat stdout.txt

Die Ausgabe des Codes:

Leiten Sie die ls-Befehlsausgabe in eine Datei um

Wie im obigen Terminalbildschirm gezeigt, haben wir den Befehl ls 1> stdout.txt im Terminal verwendet. Dieser Befehl speichert die Ausgabe des Befehls ls in der Datei namens stdout.txt.

Wir verwenden den Befehl ls in Linux, um alle Dateien und Verzeichnisse aufzulisten. Also leiten wir die Ausgabe des ls-Befehls in eine Datei um.

Als wir die Datei mit dem Befehl cat betrachteten, konnten wir die Standardausgabe des in der Datei gespeicherten Befehls ls sehen. Auf diese Weise können wir die Standardausgabe eines beliebigen Befehls mithilfe seiner numerischen ID in eine Datei umleiten.

Leiten Sie den Standardfehler in eine Datei in Bash um

Wir können den Standardfehler auch mithilfe seiner numerischen ID auf eine Datei umleiten. Um den Standardfehler zu einer Datei umzuleiten, verwenden wir ihre numerische ID 2 mit dem Umleitungsoperator >.

Wir können das mit dem folgenden Befehl im Terminal tun.

Beispielcode:

$ cat file.txt 2> stderr.txt

Um die Datei mit dem Namen stderr.txt anzuzeigen, verwenden wir diesen Befehl:

$ cat stderr.txt

Stderr in eine Datei umleiten

Wie wir sehen können, haben wir im Terminal den Befehl cat file.txt 2> stderr.txt verwendet. Da es im aktuellen Verzeichnis keine Datei mit dem Namen file.txt gibt, gibt der Befehl cat einen Fehler aus, den wir in der Datei stderr.txt angehängt haben.

Als wir die Datei stderr.txt mit dem Befehl cat angesehen haben, können wir sehen, dass sie den Fehler No such file or directory anzeigt. Das bedeutet, dass wir den Standardfehler des cat-Befehls in eine Datei namens stderr.txt umgeleitet haben.

So können wir den Standardfehler eines beliebigen Befehls in eine Datei umleiten.

Leiten Sie die Standardausgabe und den Standardfehler in eine Datei in Bash um

Wir können diese beiden Ausgaben auch mit einem einzigen Befehl in eine Datei umleiten. Dazu verwenden wir den folgenden Befehl.

Beispielcode:

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

Um die Datei stdout.txt anzuzeigen, verwenden wir diesen Befehl:

$ cat stdout.txt

Um die Datei stderr.txt anzuzeigen, verwenden wir diesen Befehl:

$ cat stderr.txt

Leiten Sie stdout und stderr mit einem einzigen Befehl um

Wie wir sehen können, haben wir die Standardausgabe und den Standardfehler in einem einzigen Befehl in Dateien umgeleitet. Die Ausgabe des Befehls ls wird in der Datei stdout.txt gespeichert, und die Füllung stderr.txt bleibt leer, da kein Fehler auftreten würde.

So können wir die Standardausgabe und den Standardfehler mit nur einem einzigen Befehl in eine Datei umleiten.

Wir hoffen, dass Sie diesen Linux-Artikel hilfreich finden, um zu verstehen, wie Sie die Standardausgabe und den Standardfehler eines beliebigen Befehls in eine Datei in Bash umleiten können.

Autor: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

Verwandter Artikel - Linux File