<ก่อนหน้านี้ | เนื้อหา | ถัดไป>
if
เมื่อใช้เชลล์ เราสามารถโค้ดตรรกะด้านบนได้ดังนี้:
x = 5
ถ้า [ $x -eq 5 ]; แล้วก้อง "x เท่ากับ 5"
อื่น
echo "x ไม่เท่ากับ 5"
fi
x = 5
ถ้า [ $x -eq 5 ]; แล้วก้อง "x เท่ากับ 5"
อื่น
echo "x ไม่เท่ากับ 5"
fi
หรือเราสามารถป้อนโดยตรงที่บรรทัดคำสั่ง (สั้นลงเล็กน้อย):
[me@linuxbox ~]$ x = 5
[me@linuxbox ~]$ ถ้า [ $x -eq 5 ]; แล้วก้อง "เท่ากับ 5"; อื่น echo "ไม่เท่ากับ 5"; fi
เท่ากับ 5 [me@linuxbox ~]$ x = 0
[me@linuxbox ~]$ ถ้า [ $x -eq 5 ]; แล้วก้อง "เท่ากับ 5"; อื่น echo "ไม่เท่ากับ 5"; fi
ไม่เท่ากับ5
[me@linuxbox ~]$ x = 5
[me@linuxbox ~]$ ถ้า [ $x -eq 5 ]; แล้วก้อง "เท่ากับ 5"; อื่น echo "ไม่เท่ากับ 5"; fi
เท่ากับ 5 [me@linuxbox ~]$ x = 0
[me@linuxbox ~]$ ถ้า [ $x -eq 5 ]; แล้วก้อง "เท่ากับ 5"; อื่น echo "ไม่เท่ากับ 5"; fi
ไม่เท่ากับ5
ในตัวอย่างนี้ เรารันคำสั่งสองครั้ง ครั้งเดียวด้วยค่าของ x ตั้งค่าเป็น 5 ซึ่งส่งผลให้สตริง "เท่ากับ 5" เป็นเอาต์พุต และเป็นครั้งที่สองด้วยค่า x ตั้งค่าเป็น 0 ซึ่งส่งผลให้สตริง "ไม่เท่ากับ 5" กำลังส่งออก
พื้นที่ if คำสั่งมีไวยากรณ์ต่อไปนี้:
if คำสั่ง; แล้วก็
คำสั่ง
[เอลิฟ คำสั่ง; แล้วก็
คำสั่ง...] [อื่น
คำสั่ง]
fi
ที่ไหน คำสั่ง เป็นรายการคำสั่ง สิ่งนี้ทำให้สับสนเล็กน้อยในแวบแรก แต่ก่อนที่เราจะเคลียร์เรื่องนี้ได้ เราต้องดูว่าเชลล์ประเมินความสำเร็จหรือความล้มเหลวของคำสั่งอย่างไร