Bash:
Skriva till standardfel

Hur man gör:

I Bash använder du >&2 för att omdirigera utdata till stderr. Här är ett grundläggande exempel:

echo "Detta är ett normalt meddelande"
echo "Detta är ett felmeddelande" >&2

Att köra detta skript kommer att visa båda meddelandena i konsolen, men om du omdirigerar dem kan du separera stdout från stderr. Till exempel:

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

output.txt kommer att innehålla "Detta är ett normalt meddelande", medan error.txt kommer att fånga "Detta är ett felmeddelande".

För ett praktiskt användningsfall, tänk dig ett skript som behandlar filer och rapporterar ett fel om en fil inte finns:

filename="example.txt"

if [ ! -f "$filename" ]; then
    echo "$filename finns inte!" >&2
    exit 1
else
    echo "Bearbetar $filename"
fi

Exempel på utdata direkt i konsolen när example.txt inte finns:

example.txt finns inte!

Det finns inga direkt till tredjepartsbibliotek i Bash för att hantera stderr, eftersom omdirigering är inbyggt stödd och generellt tillräckligt. Dock, för komplexa applikationer, kan loggningsramverk eller externa loggningsverktyg som syslog eller log4bash införlivas för att hantera både stdout och stderr mer effektivt.