
Dalam sistem operasi mirip Unix, seperti Linux, macOS X, dan BSD, stderr didefinisikan oleh standar POSIX. Nomor deskriptor file standarnya adalah 2 .
Di terminal, kesalahan standar default ke layar pengguna.
Stderr pada baris perintah Linux
Dalam bash, kesalahan standar dapat dialihkan pada baris perintah. Mengarahkan stderr dapat berguna jika Anda perlu menangkap pesan kesalahan apa pun ke file log terpisah, atau menyembunyikan pesan kesalahan sepenuhnya.
Sebagai contoh, pertimbangkan perintah find berikut:
temukan / -iname '* sesuatu *'
/ usr / share / doc / something / usr / share / doc / something / contoh / something_random find: `/ run / udisks2 ': Izin ditolak find:` / run / wpa_supplicant': Izin ditolak / usr / share / something / usr / game / sesuatu
Kami mendapatkan kesalahan karena find sedang mencoba mencari beberapa direktori sistem yang tidak dapat kami baca. Baris yang mengatakan "Izin ditolak" adalah pesan kesalahan, dan ditulis ke stderr . Baris lain ditulis ke stdout (output standar). Secara default, keduanya ditampilkan di terminal.
Untuk menyembunyikan stderr, kita dapat mengarahkan mereka dengan merujuk nomor deskriptor file kesalahan standar, 2, dan operator "redirect output", > .
find / -iname '* something *' 2> / dev / null
/ usr / bagikan / doc / sesuatu / usr / bagikan / doc / sesuatu / contoh / something_random / usr / bagikan / sesuatu / usr / permainan / sesuatu
Kesalahan tidak lagi ditampilkan, karena semua output ke stderr dialihkan ke / dev / null, perangkat khusus di Linux yang "tidak ke mana-mana."
Kami juga dapat mengalihkan semua kesalahan ke file:
temukan / -iname '* something *' 2> output.txt
/ usr / bagikan / doc / sesuatu / usr / bagikan / doc / sesuatu / contoh / something_random / usr / bagikan / sesuatu / usr / permainan / sesuatu
Sekarang, jika Anda menambahkan konten output.txt, Anda akan melihat pesan kesalahan disimpan di sana:
cat output.txt
find: `/ run / udisks2 ': Izin ditolak find:` / run / wpa_supplicant': Izin ditolak
Untuk informasi terperinci tentang cara mengarahkan aliran data, lihat pengalihan di bash.
Pesan kesalahan, istilah Sistem Operasi