วิธีการเขียน Bash IF-Statement (เงื่อนไข)

ด้วย an ถ้า คำสั่ง ซึ่งเป็นประเภทของคำสั่งแบบมีเงื่อนไข คุณสามารถดำเนินการต่างๆ ได้ขึ้นอยู่กับเงื่อนไขที่ระบุ ทำให้ระบบสามารถตัดสินใจได้อย่างมีประสิทธิภาพ

Bash คำสั่ง if พื้นฐาน

นี่คือตัวอย่างรูปแบบที่ง่ายที่สุดของ an ถ้า คำแถลง:

นับ=5
ถ้า [ จำนวน $ == 5 ]
แล้ว
เสียงสะท้อน "$ นับ"
fi

ในตัวอย่างนี้ ตัวแปร นับ ระบุเงื่อนไขที่ใช้เป็นส่วนหนึ่งของ ถ้า คำแถลง. ก่อน ถ้า คำสั่งถูกดำเนินการ ตัวแปร นับ ถูกกำหนดเป็นค่า 5. NS ถ้า คำสั่งแล้วตรวจสอบว่าค่าของ นับ เป็น 5. หากเป็นกรณีนี้ คำสั่งระหว่างคีย์เวิร์ด แล้ว และ fi ถูกประหารชีวิต มิฉะนั้น ข้อความใด ๆ ตามหลัง ถ้า คำสั่งจะถูกดำเนินการ

คีย์เวิร์ด fi เป็น ถ้า สะกดย้อนกลับ ภาษาสคริปต์ทุบตีใช้แบบแผนนี้เพื่อทำเครื่องหมายจุดสิ้นสุดของนิพจน์ที่ซับซ้อน เช่น an ถ้า คำสั่งหรือ กรณี คำแถลง.

NS เสียงก้อง คำสั่งพิมพ์อาร์กิวเมนต์ ในกรณีนี้ ค่าของตัวแปร นับ, ไปที่หน้าต่างเทอร์มินัล การเยื้องรหัสระหว่างคำหลักของ ถ้า คำสั่งปรับปรุงความสามารถในการอ่าน แต่ไม่จำเป็น

คำสั่ง Bash If กับ Else

หากคุณมีสถานการณ์ที่ควรเรียกใช้โค้ดบางส่วนก็ต่อเมื่อเงื่อนไขไม่เป็นความจริง ให้ใช้คีย์เวิร์ด อื่น ใน ถ้า คำสั่งดังในตัวอย่างนี้:

นับ=5
ถ้า [ จำนวน $ == 5 ]
แล้ว
เสียงสะท้อน "$ นับ"
อื่น
echo "นับไม่ใช่ 5"
fi

ถ้าเงื่อนไข $count == 5 เป็นจริง ระบบจะพิมพ์ค่าของตัวแปร นับ. มิฉะนั้นจะพิมพ์สตริง นับไม่ใช่5.

คำสั่ง Bash If กับ Elif

หากคุณต้องการแยกความแตกต่างระหว่างหลายเงื่อนไข ให้ใช้คีย์เวิร์ด เอลฟ์ซึ่งได้มาจาก ถ้าดังในตัวอย่างนี้:

ถ้า [ จำนวน $ == 5 ]
แล้ว
เสียงสะท้อน "นับเป็นห้า"
เอลฟ์ [ $นับ == 6]
แล้ว
เสียงสะท้อน "นับเป็นหก"
อื่น
echo "ไม่มีข้อใดข้างต้น"
fi

ถ้า นับ เป็น 5, ระบบพิมพ์ นับเป็นห้า. ถ้า นับ ไม่ใช่ 5 แต่ 6, ระบบพิมพ์ นับเป็นหก. ถ้าไม่ใช่ 5 ก็ไม่เช่นกัน 6, ระบบพิมพ์ ไม่มีข้างต้น.

คุณสามารถมีจำนวน เอลฟ์ ข้อ ตัวอย่างของ multiple เอลฟ์ เงื่อนไขคือ:

ถ้า [ จำนวน $ == 5 ]
แล้ว
เสียงสะท้อน "นับเป็นห้า"
เอลฟ์ [ $นับ == 6]
แล้ว
เสียงสะท้อน "นับเป็นหก"
เอลฟ์ [ $นับ == 7 ]
แล้ว
echo "นับได้เจ็ด"
เอลฟ์ [ $นับ == 8]
แล้ว
เสียงสะท้อน "นับเป็นแปด"
เอลฟ์ [ $นับ == 9]
แล้ว
เสียงสะท้อน "นับเป็นเก้า"
อื่น
echo "ไม่มีข้อใดข้างต้น"
fi
คำชี้แจงกรณีทุบตี

วิธีที่กระชับยิ่งขึ้นในการเขียนข้อความดังกล่าวโดยมีเงื่อนไขหลายข้อคือ กรณี กระบวนการ. มันทำงานคล้ายกับ ถ้า คำสั่งที่มีทวีคูณ เอลฟ์ ข้อ แต่กระชับกว่า ตัวอย่างเช่น โค้ดข้างต้นสามารถเขียนใหม่ด้วยเครื่องหมาย กรณี ประกาศดังนี้

กรณี "$count" ใน
5)
เสียงสะท้อน "นับเป็นห้า"
;;
6)
เสียงสะท้อน "นับเป็นหก"
;;
7)
echo "นับได้เจ็ด"
;;
8)
เสียงสะท้อน "นับเป็นแปด"
;;
9)
เสียงสะท้อน "นับเป็นเก้า"
;;
*)
echo "ไม่มีข้อใดข้างต้น"
esac
คำสั่ง Bash If ใน while loop

ถ้า ประโยคที่มักใช้อยู่ภายใน for-ลูป หรือ while-loops ดังในตัวอย่างนี้:

นับ=1
เสร็จแล้ว=0
ในขณะที่ [ $count -le 9]
ทำ
นอน 1
(( นับ++ ))
ถ้า [ จำนวน $ == 5 ]
แล้ว
ดำเนินต่อ
fi
เสียงสะท้อน "$ นับ"
เสร็จแล้ว
เสียงสะท้อนเสร็จสิ้น

นอกจากนี้คุณยังสามารถซ้อน ถ้า งบ. ซ้อนที่ง่ายที่สุด ถ้า คำสั่งอยู่ในรูปแบบ: if...then...else...if...then...fi...fi. อย่างไรก็ตาม an ถ้า คำสั่งสามารถซ้อนกับความซับซ้อนตามอำเภอใจ

ดูสิ่งนี้ด้วย วิธีส่งอาร์กิวเมนต์ไปยังสคริปต์ทุบตีซึ่งแสดงวิธีการใช้เงื่อนไขเพื่อประมวลผลพารามิเตอร์ที่ส่งผ่านจาก บรรทัดคำสั่ง.

bash shell จัดเตรียมโครงสร้างการเขียนโปรแกรมอื่น ๆ เช่น for-loops, while-loops และ นิพจน์ทางคณิตศาสตร์.