Fish Shell:
Kirjoittaminen standardivirheeseen

Miten:

Fish Shellissä voit kirjoittaa stderr-näkymään ohjaamalla tulosteesi käyttäen >&2. Tässä on perusesimerkki:

echo "Tämä on virheilmoitus" >&2

Tämä komento yksinkertaisesti kaikuttaa viestin stderr-näkymään stdoutin sijaan. Jos kirjoittaisit skriptin, joka tuottaa sekä tavallisia että virheviestejä, saattaisit tehdä jotakin tällaista:

echo "Prosessin aloitus"
echo "Tapahtui virhe" >&2
echo "Prosessi valmis"

Esimerkkitulostus, jos ajat skriptin ja ohjaat stderrin tiedostoon:

Prosessin aloitus
Prosessi valmis

Virheviesti ei näkyisi tavallisessa tulosteessa, vaan löytyisi tiedostosta, johon ohjasit stderrin.

Tilanteissa, jotka vaativat monimutkaisempaa virheenkäsittelyä tai lokitusta, Fish ei sisällä nimenomaisesti tähän suunniteltuja sisäänrakennettuja kirjastoja. Voit kuitenkin hyödyntää ulkoisia työkaluja tai kirjoittaa funktioita avuksi. Esimerkiksi yksinkertaisen lokitusfunktion luominen voisi näyttää tältä:

function log_error
    echo $argv >&2
end

log_error "Tämä on edistyksellinen virheviesti"

Tämä funktio log_error ottaa vastaan minkä tahansa merkkijonon, jonka annat sille, ja kirjoittaa sen stderr-näkymään. Tällaisten funktioiden käyttäminen voi auttaa pitämään virheenkäsittelysi selkeänä ja johdonmukaisena läpi skriptiesi.