ด้วยคำสั่ง if (Conditional Statement) คุณสามารถดำเนินการต่างกันไปตามเงื่อนไขที่กำหนด ให้ระบบมีความสามารถในการตัดสินใจ
ตัวอย่างรูปแบบง่ายที่สุดของคำสั่ง if:
count=5 if [ $count == 5 ] then echo "$count" fi
ในตัวอย่าง ตัวแปร count ระบุเงื่อนไขที่ใช้ในคำสั่ง if ก่อนรันคำสั่ง if ตัวแปร count ถูกกำหนดค่า 5 คำสั่ง if ตรวจสอบว่า count เท่ากับ 5 หรือไม่ ถ้าใช่ จะรันคำสั่งระหว่าง then และ fi มิฉะนั้น จะรันคำสั่งต่อจาก if
คีย์เวิร์ด fi คือ if สะกดถอยหลัง Bash ใช้ข้อตกลงนี้เพื่อจบการทำงานของ Expression ซับซ้อน เช่น if หรือ case statement
คำสั่ง echo พิมพ์อาร์กิวเมนต์ (ในที่นี้คือค่าของตัวแปร count) ไปยังเทอร์มินัล การเยื้องโค้ดระหว่างคีย์เวิร์ด if ช่วยอ่านง่ายขึ้น แต่ไม่บังคับ
กรณีที่ต้องการรันโค้ดเมื่อเงื่อนไข ไม่เป็นจริง ใช้คีย์เวิร์ด else ในคำสั่ง if:
count=5 if [ $count == 5 ] then echo "$count" else echo "count is not 5" fi
หากเงื่อนไข $count == 5 เป็นจริง ระบบพิมพ์ค่า count มิฉะนั้น พิมพ์ข้อความ count is not 5
หากต้องการแยกหลายเงื่อนไข ใช้คีย์เวิร์ด elif (มาจาก else if):
if [ $count == 5 ] then echo "count is five" elif [ $count == 6 ] then echo "count is six" else echo "none of the above" fi
ถ้า count เป็น 5 พิมพ์ "count is five" ถ้าไม่ใช่ 5 แต่เป็น 6 พิมพ์ "count is six" ถ้าไม่ใช่ทั้งคู่ พิมพ์ "none of the above"
สามารถมี elif ได้หลายตัว ตัวอย่างหลายเงื่อนไข:
if [ $count == 5 ] then echo "count is five" elif [ $count == 6 ] then echo "count is six" elif [ $count == 7 ] then echo "count is seven" elif [ $count == 8 ] then echo "count is eight" elif [ $count == 9 ] then echo "count is nine" else echo "none of the above" fi
วิธีเขียนที่กระชับกว่าสำหรับหลายเงื่อนไข คือใช้ case statement ทำงานคล้าย if หลาย elif แต่กระชับกว่า:
case "$count" in 5) echo "count is five" ;; 6) echo "count is six" ;; 7) echo "count is seven" ;; 8) echo "count is eight" ;; 9) echo "count is nine" ;; *) echo "none of the above" esac
if statements มักใช้ภายใน for-loops หรือ while-loops:
count=1 done=0 while [ $count -le 9 ] do sleep 1 (( count++ )) if [ $count == 5 ] then continue fi echo "$count" done echo Finished
ยังสามารถมี if ซ้อนกัน (nested) ได้ รูปแบบง่ายคือ if...then...else...if...then...fi...fi แต่อาจซ้อนซับซ้อนได้เท่าไหร่ก็ตาม
ดูเพิ่มเติม: วิธีส่งอาร์กิวเมนต์ให้ Bash Script ซึ่งแสดงการใช้ Conditional ประมวลผลพารามิเตอร์จากบรรทัดคำสั่ง
Bash Shell มีโครงสร้างโปรแกรมมิ่งอื่นๆ เช่น for-loops, while-loops, และ arithmetic expressions