โปรดทราบว่าสำหรับPIPEการเป็นคำสั่งหรือลำดับของคำสั่งแล้ว:
if PIPE ; then
# do one thing if PIPE returned with zero status ($?=0)
else
# do another thing if PIPE returned with non-zero status ($?!=0), e.g. error
fi
สำหรับบันทึกที่[ expr ]เป็นเปลือก builtin †test exprชวเลข
เนื่องจากgrepส่งกลับด้วยสถานะ 0 ในกรณีของการจับคู่และสถานะที่ไม่ใช่ศูนย์ในกรณีที่ไม่มีการจับคู่คุณสามารถใช้:
if grep -lq '^MYSQL_ROLE=master' ; then
# do one thing
else
# do another thing
fi
โปรดสังเกตว่าการใช้งาน-lที่มีความสำคัญเกี่ยวกับไฟล์ที่มีอย่างน้อยหนึ่งการแข่งขัน (เพื่อให้grepส่งคืนทันทีที่พบการแข่งขันหนึ่งโดยไม่จำเป็นต้องแยกวิเคราะห์ไฟล์อินพุตต่อไปโดยไม่จำเป็น)
† บนแพลตฟอร์มบางส่วน[ expr ]ไม่ builtin แต่ปฏิบัติการจริง/bin/[(ซึ่งอาร์กิวเมนต์สุดท้ายจะเป็น]) ซึ่งเป็นเหตุผลที่[ expr ]ควรมีช่องว่างรอบวงเล็บและทำไมมันจะต้องตามมาด้วยการเป็นหนึ่งในตัวคั่นรายการคำสั่ง ( ;, &&, ||, |, &ขึ้นบรรทัดใหม่)