V operacijskih sistemih, podobnih Unixu, kot so Linux, MacOS X in BSD, je stderr definiran s standardom POSIX. Njegova privzeta številka deskriptorja datoteke je 2 .
Standardna napaka v terminalu je privzeta za uporabniški zaslon.
Stderr na ukazni vrstici Linuxa
V bash lahko standardno napako preusmerimo v ukazno vrstico. Preusmerjanje stderrja je lahko koristno, če morate v ločeno datoteko dnevnika zajeti kakršna koli sporočila o napakah ali v celoti skriti sporočila o napakah.
Upoštevajte na primer naslednji ukaz:
najdi / -iname "* nekaj *"
/ usr / share / doc / nekaj / usr / share / doc / nekaj / examples / something_random najdi: `/ run / udisks2 ': Dovoljenje zavrnjeno:` / run / wpa_supplicant': Dovoljenje zavrnjeno / usr / share / something / usr / igre / nekaj
Dobivamo napake, ker iskanje išče nekaj sistemskih imenikov, ki jih nimamo dovoljenja za branje. Vrstice, ki pravijo "Dovoljenje zavrnjeno", so sporočila o napakah in so bila napisana v stderr . Druge vrstice so bile zapisane v stdout (standardni izhod). Privzeto se oba prikažeta na terminalu.
Če želite skriti stderr, jih lahko preusmerimo s sklicevanjem na številko deskriptorja datoteke standardne napake, 2 in operaterja »preusmeritvenega izhoda« > .
find / -iname "* nekaj *" 2> / dev / null
/ usr / share / doc / nekaj / usr / share / doc / nekaj / Primeri / something_random / usr / share / nekaj / usr / igre / nekaj
Napake niso več prikazane, ker je bil celoten izhod v stderr preusmerjen na / dev / null, posebno napravo v Linuxu, ki "nikamor ne gre."
Vse napake lahko preusmerimo tudi v datoteko:
find / -iname '* something *' 2> output.txt
/ usr / share / doc / nekaj / usr / share / doc / nekaj / Primeri / something_random / usr / share / nekaj / usr / igre / nekaj
Zdaj, če izločite vsebino output.txt, boste videli sporočila o napakah, ki so bila tam shranjena:
cat output.txt
find: `/ run / udisks2 ': Dovoljenje zavrnjeno:` / run / wpa_supplicant': Dovoljenje zavrnjeno
Za podrobne informacije o preusmerjanju podatkovnih tokov glejte preusmeritev v bash.
Sporočilo o napaki, izrazi operacijskega sistema