Hening ikal dengan> / dev / null 2> & 1 saat disalurkan

3

Jadi saya punya curlyang disalurkan ke grepdan a sed. Di mana saya akan menerapkan >/dev/null 2>&1?

curl www.site.com | grep stuff | sed "other stuff"

Di akhir atau setelah keriting?

tzippy
sumber
Seperti yang saya katakan, saya ingin membungkam ikal dengan mengarahkan output stdout dan output stderr ke / dev / null.
tzippy

Jawaban:

7

Harap lebih spesifik apa tujuan dari perintah tersebut. Saya kira Anda ingin menggunakannya

curl -s www.site.com

untuk mencegah indikasi kemajuan dan hal-hal lain. -s akan melakukan aksi yang sama tetapi secara diam-diam

Jika Anda benar-benar harus menggunakan> / dev / null 2> & 1 saya pikir saya akan mengarahkan kembali hasil curl ke file

curl www.site.com -o file.txt >/dev/null 2>&1
cat file.txt | grep stuff | sed "other stuff"   
mnmnc
sumber
Terima kasih. Itulah yang ingin saya capai. Jadi karena penasaran: Kemana> / dev / null 2> & 1 pergi?
tzippy
1
jika Anda melakukan curl www.site.com> / dev / null 2> & 1 | barang grep | dan "hal-hal lain", grep tidak akan menerima apa pun. Jika Anda melakukan curl www.site.com> / dev / null 2> & 1 | barang grep | sed "barang lain"> / dev / null 2> & 1 Anda tidak akan melihat apa pun.
mnmnc
4

Hanya menjelaskan sedikit lebih dekat: >/dev/nullpengalihan SDTOUT (output standar) ke "lubang hitam", dan 2>&1menambahkan STDERR (output kesalahan standar) ke STDOUT sehingga juga menuju ke Nirvana. Ini tidak meninggalkan apa pun untuk ditampilkan: output normal serta kesalahan hilang. Jadi, apa yang Anda inginkan mungkin bisa

curl -s www.site.com 2>/dev/null | grep stuff | sed "other stuff"

yaitu tidak mengarahkan ulang STDOUT, hanya menekan STDERR dan memberi tahu curl untuk hanya menampilkan konten yang diinduksi, kemudian memiparkannya ke grep dan akhirnya ke sed.

Berhati-hatilah untuk tidak memasukkan spasi di antara "2>", atau 2 lebih suka ditafsirkan sebagai parameter tambahan untuk menggulung;)

Izzy
sumber
0

Saya menemukan sesuatu yang serupa baru-baru ini dan perlu waktu berapa lama untuk memuat halaman tertentu. Saya hanya digunakan /dev/nullsebagai file output saya dan yang memungkinkan saya mendapatkan semua statistik yang bagus tanpa mencetak HTML.

curl www.google.com -o /dev/null

Untuk diri saya sendiri, saya juga membungkusnya dengan timeperintah untuk data tambahan

time (curl www.google.com -o /dev/null)
Paul Nelson Baker
sumber
-1

curl -sw '%{http_code}' www.example.com | tail -n 1

Saya lebih suka ini jika halaman mengembalikan teks yang kadang-kadang terjadi, misalnya ketika melengkung port driver MongoDB.

Ben Hizak
sumber
Apa hubungannya ini dengan pertanyaan, yaitu tentang mengarahkan kembali output ke /dev/nulldan pipa melalui grep?
Scott