Bash:
Schreiben auf Standardfehler

Wie:

In Bash verwenden Sie >&2, um die Ausgabe auf stderr umzuleiten. Hier ein einfaches Beispiel:

echo "Das ist eine normale Nachricht"
echo "Das ist eine Fehlermeldung" >&2

Wenn Sie dieses Skript ausführen, werden beide Nachrichten auf der Konsole angezeigt, aber wenn Sie sie umleiten, können Sie die stdout von der stderr trennen. Zum Beispiel:

bash script.sh > output.txt 2> error.txt

output.txt wird "Das ist eine normale Nachricht" enthalten, während error.txt "Das ist eine Fehlermeldung" erfassen wird.

Für einen praktischen Anwendungsfall betrachten Sie ein Skript, das Dateien verarbeitet und einen Fehler meldet, wenn eine Datei nicht existiert:

filename="example.txt"

if [ ! -f "$filename" ]; then
    echo "$filename existiert nicht!" >&2
    exit 1
else
    echo "Verarbeite $filename"
fi

Beispiel für eine Ausgabe direkt in der Konsole, wenn example.txt nicht existiert:

example.txt existiert nicht!

Es gibt keine direkten Drittanbieter-Bibliotheken in Bash für die Behandlung von stderr, da die Umleitung nativ unterstützt wird und im Allgemeinen ausreichend ist. Für komplexe Anwendungen können jedoch Logging-Frameworks oder externe Protokollierungstools wie syslog oder log4bash integriert werden, um sowohl stdout als auch stderr effektiver zu verwalten.