วิธีการเขียน IF งบใน Bash Script

คำสั่งไวยากรณ์และตัวอย่าง

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

ตัวอย่างของฟอร์มที่ง่ายที่สุดของ if-statement จะเป็น:

count = 5 if [$ count == 5] แล้ว echo "$ count" fi

ในตัวอย่างนี้ตัวแปร "count" ใช้เพื่อระบุเงื่อนไขที่ใช้เป็นส่วนหนึ่งของ if-statement ก่อนที่จะดำเนินการ if-statement ตัวแปร "count" จะถูกกำหนดค่า "5" ถ้างบแล้วตรวจสอบว่าค่าของ "นับ" คือ "5" หากเป็นเช่นนั้นคำสั่งระหว่างคำหลัก "then" และ "fi" จะถูกเรียกใช้มิฉะนั้นจะมีการดำเนินการใด ๆ ตามคำสั่ง if คำหลัก "fi" คือ "if" สะกดย้อนกลับ ภาษาสคริปต์ bash ใช้การประชุมนี้เพื่อทำเครื่องหมายจุดสิ้นสุดของนิพจน์ที่ซับซ้อนเช่นคำสั่ง if หรือ case-statements

คำสั่ง "echo" จะพิมพ์อาร์กิวเมนต์ในกรณีนี้ค่าของตัวแปร "count" ไปยังหน้าต่างเทอร์มินัล การเว้นวรรคของรหัสระหว่างคำหลักของคำสั่ง if ช่วยเพิ่มการอ่านง่าย แต่ไม่จำเป็น

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

count = 5 if [$ count == 5] แล้ว echo "count" อื่น echo "count ไม่ใช่ 5" fi

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

หากคุณต้องการแยกความแตกต่างระหว่างเงื่อนไขหลายเงื่อนไขคุณสามารถใช้คำหลัก "elif" ซึ่งมาจาก "else if" เช่นในตัวอย่างนี้

ถ้า [count == 5] นับแล้วนับว่า "นับเป็นห้า" elif [$ count == 6] แล้ว echo "count is six" อื่น echo "ไม่มีเลย" fi

ถ้า "count" คือ "5" ระบบจะพิมพ์ออกมาว่า "count is five" ถ้า "count" ไม่ใช่ "5" แต่ "6" ระบบจะพิมพ์ "count is six" ถ้าไม่ใช่ "5" หรือ "6" ระบบจะพิมพ์ "none of above"

ตามที่คุณอาจคาดเดาได้คุณสามารถมีข้อความ "elif" จำนวนเท่าใดก็ได้ ตัวอย่างที่มีหลายเงื่อนไข "elif" จะเป็น:

ถ้า [count == 5] นับแล้วนับเป็น "ห้า" elif [$ count == 6] แล้ว echo "count is six" elif [count == 7] นับแล้ว "echo" นับเป็นเจ็ด "elif [count = = 8] แล้ว echo "นับเป็นแปด" elif [นับ $ == 9] แล้ว echo "นับเป็นเก้า" อื่น echo "ไม่มีข้างต้น" fi

วิธีที่กระชับมากขึ้นในการเขียนรายงานดังกล่าวพร้อมเงื่อนไขหลายประการคือวิธี กรณี ทำหน้าที่คล้ายคลึงกับคำสั่ง if ถ้ามีประโยค "elif" หลายข้อ แต่มีความกระชับมากขึ้น ตัวอย่างเช่นโค้ดข้างต้นสามารถเขียนใหม่ได้โดยใช้คำสั่ง "case" ดังนี้:

กรณี "นับ $" ใน 5) echo "นับเป็นห้า"; 6) echo "นับเป็นหก" ;; 7) echo "นับเป็นเจ็ด" ;; 8) echo "นับเป็นแปด" ;; 9) echo "นับเป็นเก้า" ;; *) echo "ไม่มีข้อใดข้างต้น" esac

ถ้างบมักจะใช้ภายใน for-loops หรือ while-loops เช่นในตัวอย่างนี้:

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

นอกจากนี้คุณยังสามารถมีคำสั่ง if ที่ซ้อนกัน คำสั่งที่ซ้อนกันที่ง่ายที่สุดถ้ามีรูปแบบ: ถ้า ... แล้ว ... อื่น ... ถ้า ... แล้ว ... fi fi ... อย่างไรก็ตามถ้าคำสั่งสามารถซ้อนกันได้ด้วยความซับซ้อนโดยพลการ

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

เปลือกทุบตีให้โครงสร้างการเขียนโปรแกรมอื่น ๆ เช่น ลูปสำหรับลูป ขณะวน และ นิพจน์เลขคณิต