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?


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"   

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;)


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)

-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.


Apa hubungannya ini dengan pertanyaan, yaitu tentang mengarahkan kembali output ke /dev/nulldan pipa melalui grep?
Scott
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.