Stderr

Tavallinen virhekuva

Stderr , tunnetaan myös standardivirhe on oletusarvo tiedoston kuvaus missä prosessi voi kirjoittaa virheilmoitukset .

Sisään Unix -Kuten käyttöjärjestelmät , kuten Linux , macOS X ja BSD , stderr on määritelty POSIX: lla vakiona . Tiedoston oletusnumero on kaksi .



Päätelaitteessa vakiovirhe on oletusarvoisesti käyttäjän näyttö.

Stderr Linux-komentorivillä

Sisään lyödä , vakiovirhe voidaan ohjata komentorivi . Uudelleenohjaus stderr voi olla hyödyllinen, jos joudut kaappaamaan virheilmoitukset erilliseen Hirsi tiedosto tai piilota virheilmoitukset kokonaan.

Harkitse esimerkiksi seuraavaa löytö komento:



 find / -iname '*something*'
 /usr/share/doc/something /usr/share/doc/something/examples/something_random find: '/run/udisks2': Permission denied find: '/run/wpa_supplicant': Permission denied /usr/share/something /usr/games/something

Saamme virheitä, koska löytö yrittää etsiä muutamia järjestelmähakemistoja, joita meillä ei ole lupa lukea. Rivit, joissa lukee 'Käyttöoikeus evätty', ovat virheilmoituksia, ja niihin on kirjoitettu stderr . Muut rivit kirjoitettiin stdout ( vakiolähtö ). Oletuksena molemmat näkyvät päätelaitteessa.

Piiloutua stderr , voimme ohjata ne viittaamalla standardivirheen tiedostokuvaajan numeroon, kaksi ja 'uudelleenohjauslähtö' -operaattori, > .

 find / -iname '*something*' 2>/dev/null
 /usr/share/doc/something /usr/share/doc/something/examples/something_random /usr/share/something /usr/games/something

Virheitä ei enää näytetä, koska kaikki tulosteet osoitteeseen stderr ohjataan osoitteeseen / dev / null , Linuxin erityislaite, joka ei mene minnekään.



Voimme myös ohjata kaikki virheet tiedostoon:

 find / -iname '*something*' 2>output.txt
 /usr/share/doc/something /usr/share/doc/something/examples/something_random /usr/share/something /usr/games/something

Nyt, jos sinä kissa sisällön output.txt , näet virheilmoitukset tallennettuina sinne:

 cat output.txt
 find: '/run/udisks2': Permission denied find: '/run/wpa_supplicant': Permission denied

Katso tarkat tiedot datavirtojen uudelleenohjaamisesta kohdasta uudelleenohjaus bash .