Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีเขียนคำสั่ง IF-Statement ใน Bash Script

ด้วยคำสั่ง if (Conditional Statement) คุณสามารถดำเนินการต่างกันไปตามเงื่อนไขที่กำหนด ให้ระบบมีความสามารถในการตัดสินใจ

วิธีเขียนคำสั่ง IF-Statement ใน Bash Script

ตัวอย่างรูปแบบง่ายที่สุดของคำสั่ง 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 ช่วยอ่านง่ายขึ้น แต่ไม่บังคับ

วิธีเขียนคำสั่ง IF-Statement ใน Bash Script

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

count=5
if [ $count == 5 ]
then
 echo "$count"
else
 echo "count is not 5"
fi

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

วิธีเขียนคำสั่ง IF-Statement ใน Bash Script

หากต้องการแยกหลายเงื่อนไข ใช้คีย์เวิร์ด 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
วิธีเขียนคำสั่ง IF-Statement ใน Bash Script

วิธีเขียนที่กระชับกว่าสำหรับหลายเงื่อนไข คือใช้ 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-Statement ใน Bash Script

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