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" >&2Att 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.txtoutput.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"
fiExempel 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.