Bash:
Kirjoittaminen standardivirheeseen

Kuinka:

Bashissa käytät >&2 uudelleenohjataksesi tulosteen stderr:iin. Tässä on perusesimerkki:

echo "Tämä on normaali viesti"
echo "Tämä on virheviesti" >&2

Tämän skriptin suorittaminen näyttää molemmat viestit konsolissa, mutta jos ohjaat ne uudelleen, voit erottaa stdout:n stderr:stä. Esimerkiksi:

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

output.txt sisältää "Tämä on normaali viesti", kun taas error.txt sisältää "Tämä on virheviesti".

Käytännön esimerkissä katsotaan skriptiä, joka käsittelee tiedostoja ja raportoi virheen, jos tiedostoa ei ole olemassa:

filename="example.txt"

if [ ! -f "$filename" ]; then
    echo "$filename ei ole olemassa!" >&2
    exit 1
else
    echo "Käsitellään $filename"
fi

Esimerkkituloste suoraan konsolissa, kun example.txt ei ole olemassa:

example.txt ei ole olemassa!

Bashissa ei ole suoria kolmannen osapuolen kirjastoja stderr:n käsittelyyn, sillä uudelleenohjaus on natiivisti tuettu ja yleensä riittävä. Kuitenkin monimutkaisissa sovelluksissa voidaan käyttää lokituskehyksiä tai ulkoisia lokitusvälineitä, kuten syslog tai log4bash, jotta sekä stdout että stderr voidaan hallita tehokkaammin.