I Unix-liknande operativsystem, som Linux, MacOS X och BSD, definieras stderr av POSIX-standarden. Dess standardfilbeskrivningsnummer är 2 .
I terminalen är standardfelet inställt på användarens skärm.
Stderr på Linux-kommandoraden
I bash kan standardfel omdirigeras på kommandoraden. Omdirigering av stderr kan vara användbar om du behöver ta bort eventuella felmeddelanden till en separat loggfil eller dölja felmeddelandena helt.
Tänk på följande kommando:
hitta / -inge '* något *'
/ usr / share / doc / something / usr / share / doc / något / exempel / något_random hitta: `/ run / udisks2 ': Tillstånd nekad hitta:` / run / wpa_supplicant': Tillstånd nekad / usr / share / something / usr / games / något
Vi får fel eftersom sökningen försöker söka några systemkataloger som vi inte har behörighet att läsa. Linjerna som säger "Tillstånd nekad" är felmeddelanden och skrivs till stderr . De andra raderna skrevs till stdout (standardutgång). Som standard visas de båda på terminalen.
För att dölja stderr kan vi omdirigera dem genom att referera till standardfelets filbeskrivningsnummer, 2 och en "omdirigeringsutgång" operatör, > .
hitta / -inge '* något *' 2> / dev / null
/ usr / share / doc / something / usr / share / doc / något / exempel / something_random / usr / dela / något / usr / games / something
Felen visas inte längre, eftersom all utdata till stderr omdirigerades till / dev / null, den speciella enheten i Linux som "går ingenstans".
Vi kan också omdirigera alla fel till en fil:
find / -iname '* something *' 2> output.txt
/ usr / share / doc / something / usr / share / doc / något / exempel / something_random / usr / dela / något / usr / games / something
Om du kattar innehållet i output.txt så ser du att felmeddelandena sparades där:
katt output.txt
hitta: `/ run / udisks2 ': Tillstånd nekad hitta:` / run / wpa_supplicant': Tillstånd nekat
För detaljerad information om hur du omdirigerar dataströmmar, se omdirigering i bash.
Felmeddelande, operativsystem villkor