ปิดเสียงม้วนด้วย> / dev / null 2> & 1 เมื่อมันถูกไพพ์


3

ดังนั้นฉันมี curl ที่ถูกส่งไปยัง grep และ sed. ฉันจะสมัครที่ไหน >/dev/null 2>&1 ?

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

ในตอนท้ายหรือหลังขด


ตามที่ฉันบอกว่าฉันต้องการเงียบม้วนงอโดยสั่งเอาต์พุต stdout และเอาต์พุต stderr ไปยัง / dev / null
tzippy

คำตอบ:


7

โปรดระบุให้ชัดเจนยิ่งขึ้นว่าอะไรคือจุดประสงค์ของคำสั่ง ฉันเดาว่าคุณต้องการใช้

curl -s www.site.com

เพื่อป้องกันการบ่งชี้ความคืบหน้าและสิ่งอื่น ๆ - s จะดำเนินการกระทำเดียวกัน แต่เงียบ ๆ

หากคุณต้องใช้ & gt; / dev / null 2 ​​& gt; & amp; 1 ฉันคิดว่าฉันจะเปลี่ยนเส้นทาง curl output ไปที่ไฟล์

curl www.site.com -o file.txt >/dev/null 2>&1
cat file.txt | grep stuff | sed "other stuff"   

ขอบคุณ นั่นคือสิ่งที่ฉันต้องการเพื่อให้บรรลุ ดังนั้นจากความอยากรู้: แท็ก & gt; / dev / null 2 ​​& gt; & amp; 1 จะไปอยู่ที่ไหน
tzippy

1
หากคุณทำเว็บไซต์ www.site.com & gt; / dev / null 2 ​​& gt; & amp; 1 | grep stuff sed "สิ่งอื่น ๆ " grep จะไม่ได้รับอะไรเลย หากคุณขด www.site.com & gt; / dev / null 2 ​​& gt; & amp; 1 | grep stuff sed "สิ่งอื่น ๆ " & gt; / dev / null 2 ​​& gt; & amp; 1 คุณจะไม่เห็นอะไรเลย
mnmnc

4

เพิ่งอธิบายให้ใกล้ขึ้น: >/dev/null เปลี่ยนเส้นทาง STDOUT (เอาต์พุตมาตรฐาน) ไปที่ "black hole" และ 2>&1 ผนวก STDERR (เอาต์พุตข้อผิดพลาดมาตรฐาน) กับ STDOUT ดังนั้นจึงไปที่เนอร์วาน่า สิ่งนี้จะไม่แสดงอะไรเลย: เอาต์พุตปกติรวมถึงข้อผิดพลาดจะหายไป ดังนั้นสิ่งที่คุณอาจจะ อาจ อาจจะต้องการ

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

เช่นไม่เปลี่ยนเส้นทาง STDOUT เพียงแค่หยุด STDERR และบอกให้ curl แสดงเฉพาะเนื้อหาที่มีการอ้างอิงเท่านั้นจากนั้นจึงส่งไปที่ grep และในที่สุดก็จะหยุดชะงัก

ดูแลให้ดี ไม่ แนะนำช่องว่างระหว่าง "2 & gt;" หรือ 2 จะถูกตีความว่าเป็นพารามิเตอร์เพิ่มเติมเพื่อ curl;)


0

ฉันวิ่งข้ามสิ่งที่คล้ายกันเมื่อเร็ว ๆ นี้และต้องใช้เวลานานแค่ไหนในการโหลดหน้าเว็บเฉพาะ ฉันเพิ่งใช้ /dev/null เป็นไฟล์ที่ส่งออกของฉันและให้ฉันได้รับสถิติที่ดีโดยไม่ต้องพิมพ์ใด ๆ ของ HTML

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

สำหรับตัวฉันเองฉันก็ห่อไว้ด้วย time คำสั่งสำหรับข้อมูลพิเศษ

time (curl www.google.com -o /dev/null)

-1

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

ฉันชอบสิ่งนี้ในกรณีที่หน้าส่งคืนข้อความซึ่งบางครั้งเกิดขึ้นเช่นเมื่อม้วนพอร์ตไดรเวอร์ MongoDB


สิ่งนี้เกี่ยวข้องกับคำถามซึ่งเกี่ยวกับการเปลี่ยนเส้นทางผลลัพธ์ไปยัง /dev/null และท่อผ่าน grep?
Scott
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.