ต้องการความช่วยเหลือ - ในบริบทของเชลล์สคริปต์บน 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
ความเข้าใจ / สำนวนใด ๆ ที่จะได้รับการชื่นชมมากที่สุด - ขอบคุณ