1
`set -e` และ` grep` idiom เพื่อป้องกันการออกจาก shell script ก่อนเมื่อไม่พบ pattern
ต้องการความช่วยเหลือ - ในบริบทของเชลล์สคริปต์บน GNU / LINUX ทุบตี: set -eฉันมักจะใช้ บ่อยครั้งที่ฉันต้องการgrepและไม่ต้องการให้สคริปต์ยุติการทำงานหากgrepมีสถานะออกจากการ1ระบุรูปแบบที่ไม่พบ บางครั้งฉันได้พยายามที่จะแก้ปัญหานี้มีดังนี้: (ลองฉัน) ถ้าset +o pipefailและเรียก grep ด้วยบางอย่างเช่นนี้grep 'p' | wc -lฉันจะได้รับพฤติกรรมที่ต้องการจนกว่าผู้ดูแลในอนาคตจะเปิดpipefailใช้งาน นอกจากนี้ฉันชอบเปิดใช้งานpipefailสิ่งนี้ไม่ได้ผลสำหรับฉัน (ลอง II) ใช้รูปแบบการจับคู่ลายเส้นและsedหรือawkเท่านั้นจากนั้นwcจับคู่บรรทัดเพื่อทดสอบรูปแบบที่ตรงกัน ฉันไม่ชอบตัวเลือกนี้เพราะใช้sedจะgrepดูเหมือนว่าวิธีแก้ปัญหาสำหรับปัญหาที่แท้จริงของฉัน (ลอง III) อัน นี้เป็นรายการโปรดของฉัน - สิ่งที่ชอบ:set +e; grep 'p'; set-e ความเข้าใจ / สำนวนใด ๆ ที่จะได้รับการชื่นชมมากที่สุด - ขอบคุณ