Skriving til standardfeil

Bash:
Skriving til standardfeil

Hvordan gjøre det:

I Bash bruker du >&2 for å omdirigere utdata til stderr. Her er et grunnleggende eksempel:

echo "Dette er en normal melding"
echo "Dette er en feilmelding" >&2

Å kjøre dette skriptet vil vise begge meldingene på konsollen, men hvis du omdirigerer dem, kan du skille stdout fra stderr. For eksempel:

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

output.txt vil inneholde "Dette er en normal melding", mens error.txt vil fange opp "Dette er en feilmelding".

For et praktisk bruksområde, vurder et skript som behandler filer og rapporterer en feil hvis en fil ikke eksisterer:

filename="example.txt"

if [ ! -f "$filename" ]; then
    echo "$filename finnes ikke!" >&2
    exit 1
else
    echo "Behandler $filename"
fi

Eksempel på utdata direkte i konsollen når example.txt ikke eksisterer:

example.txt finnes ikke!

Det finnes ingen direkte tredjepartsbiblioteker i Bash for håndtering av stderr, ettersom omdirigering er nativt støttet og generelt tilstrekkelig. Men for komplekse applikasjoner kan loggingsrammeverk eller eksterne loggingsverktøy som syslog eller log4bash inkorporeres for å håndtere både stdout og stderr mer effektivt.