Echo zu stderr in Bash

MD Aminul Islam 20 Juni 2023
Echo zu stderr in Bash

Eine Standardvariable für Fehlermeldungen, die in Bash-Skripts integriert ist, ist als stderr bekannt. Es ist auch als Standardfehler bekannt, ein Standardausgabegerät für Fehler.

Manchmal müssen wir die Fehler in den Ausgabekanal umleiten. Die Linux-Umgebung identifiziert jedes Dateiobjekt mit seiner Beschreibung, bekannt als FD.

Es ist ein positiver ganzzahliger Wert, der die geöffnete Dateisitzung identifiziert. Für stderr ist der Wert des Dateideskriptors 2.

In diesem Artikel erfahren Sie mehr über stderr und seine Funktionalität. Außerdem werden wir uns einige Beispiele ansehen, die das Thema einfacher machen.

Echo auf stderr in Bash

Der Befehl stderr wird hauptsächlich verwendet, um Fehler während der Ausführung eines Befehls neu zu kodieren. Die allgemeine Syntax dieses Befehls lautet:

Your command here 2>error.log

In der oben geteilten Beispielsyntax finden Sie ein Symbol 2> und eine Datei namens error.log. Nun gibt die 2> den Wert von FILE DESCRIPTOR an, der die Identität von stderr darstellt.

In unserem Fall ist der Wert des FILE DESCRIPTOR 2. Jetzt ist der von uns angegebene Dateiname für die Protokolldatei, die während der Befehlsausführung generiert wird.

Sie können die Nachricht stderr auch echo, indem Sie dem folgenden Syntaxformat folgen.

Your command here >&2 echo "error"

Sehen wir uns ein Beispiel an, um das Thema zu vereinfachen. Angenommen, wir haben einen Fehlerbefehl erstellt und möchten die ausgegebene Fehlermeldung echo.

Nun sieht unser Beispielcode so aus:

echo $( 3 + 2 )) >&2 echo "error"

In dem oben geteilten Code haben wir absichtlich einen Fehler gemacht, um zu verstehen, wie er funktioniert. Wir haben hier eine der Klammern entfernt, daher kann dies ein Fehler sein.

Danach zeigen wir diesen Fehler mit dem echo an. Eine Ausgabe wie die folgende wird angezeigt, nachdem der obige Code ausgeführt wurde.

./example.sh: line 1: syntax error near unexpected token `)'
./example.sh: line 1: `echo $( 3 + 2 )) >&2 echo "error" '

Jetzt korrigieren wir den Code wie unten und führen den Befehl erneut aus.

echo $(( 3 + 2 )) >&2 "No error has been found."

Nachdem Sie den Code ausgeführt haben, erhalten Sie eine Ausgabe wie die folgende.

5 No error has been found.

Alle in diesem Artikel verwendeten Codes sind in Bash geschrieben. Es funktioniert nur in der Linux Shell-Umgebung.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Verwandter Artikel - Bash Echo