Unix-szerű operációs rendszerekben, mint például a Linux, a MacOS X és a BSD, a stderr a POSIX szabvány által definiált. Alapértelmezett fájlleíró száma 2 .
A terminálban a standard hiba alapértelmezés szerint a felhasználó képernyője.
Stderr a Linux parancssorában
A bash-ban a standard hiba átirányítható a parancssorban. A stderr átirányítása hasznos lehet, ha valamilyen hibaüzenetet kell elkülönítenie egy külön naplófájlba, vagy elrejteni a hibaüzeneteket.
Fontolja meg például a következő keresési parancsot:
megtalálja / -iname '* valami *'
/ usr / share / doc / something / usr / share / doc / valami / példák / something_random talál: `/ run / udisks2 ': Engedély megtagadva:` / run / wpa_supplicant': Engedély megtagadva / usr / share / something / usr / játékok / valami
Hibát szerezzünk, mert a keresés néhány olyan rendszerkönyvtárat keres, amelyeknek nincs olvasási engedélye. Azok a sorok, amelyek azt mondják, hogy az "Engedély megtagadva" hibaüzenetek, és a stderr- nek írták. A többi sort stdout-ra (standard kimenetre) írtuk. Alapértelmezés szerint mindkettő megjelenik a terminálon.
A stderr elrejtéséhez átirányíthatjuk azokat a 2-es szabványhiba fájlleírójának és egy "átirányító kimenet" operátornak, > .
find / -iname '* valami *' 2> / dev / null
/ usr / share / doc / valami / usr / share / doc / valami / példák / something_random / usr / share / valami / usr / játékok / valami
A hibák már nem jelennek meg, mert az összes stderr kimenet átirányításra került a / dev / null-ra, a Linux speciális eszközére, amely „sehová megy”.
Az összes hibát is átirányíthatjuk egy fájlra:
find / -iname '* valami *' 2> output.txt
/ usr / share / doc / valami / usr / share / doc / valami / példák / something_random / usr / share / valami / usr / játékok / valami
Most, ha a kimenet.txt tartalmát kíséri, akkor a hibaüzenetek ott mentésre kerültek:
cat output.txt
talál: `/ run / udisks2 ': Engedélyezés megtagadva:` / run / wpa_supplicant': Engedély megtagadva
Az adatfolyamok átirányításának részletes ismertetését lásd: átirányítás a bash-ban.
Hibaüzenet, operációs rendszer kifejezések