Selalu redirect error ke / dev / null


22

Saya tahu saya bisa mengarahkan pesan kesalahan dari perintah ke /dev/nullmenggunakan sintaks berikut:

command arg1 arg2 2>/dev/null

Tetapi apakah ada cara untuk melakukan ini secara default sehingga pesan kesalahan selalu masuk /dev/null, kecuali saya tentukan sebaliknya?


1
Singkatnya: ya - redirect / dev / stderr ke / dev / null. Tetapi, jika Anda tidak bisa mengetahuinya sendiri, Anda tidak boleh mencoba, karena Anda lebih mungkin memecahkan sesuatu yang fatal daripada sukses.
Benubird

@Benubird stderr! = / Dev / stderr. Mengarahkan file itu tidak akan melakukan apa-apa. File di / dev / hanya untuk kenyamanan.
Chris Down

@ ChrisDown Anda benar, / dev / stderr hanyalah sebuah tautan. Namun, banyak proses menulis ke sana daripada fd / 2, yang juga bisa Anda arahkan. Semakin rumit dari sana - itulah sebabnya saya meninggalkan komentar bukannya jawaban :).
Benubird

Jawaban:


29

Banyak program mengirim output ke stderr yang sebenarnya bukan indikasi kesalahan. Sebagai contoh, dalam beberapa program digunakan untuk menampilkan informasi yang jika tidak akan mempengaruhi keluaran program (yang dirancang untuk disalurkan ke program lain). Namun, Anda dapat melakukan ini:

exec 2>/dev/null

Saya tidak akan merekomendasikan melakukan ini di luar skrip.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.