<ก่อนหน้านี้ | Contents | ถัดไป>
รูปแบบ
รูปแบบที่ใช้โดย กรณี เหมือนกับที่ใช้โดยการขยายชื่อพาธ รูปแบบจะสิ้นสุดด้วยอักขระ “)” นี่คือรูปแบบที่ถูกต้องบางส่วน:
ตารางที่ 31- 1: ตัวอย่างรูปแบบเคส
คำอธิบายรูปแบบ
คำอธิบายรูปแบบ
a) ตรงกันถ้า word เท่ากับ “ก”
[[:อัลฟ่า:]]) ตรงกันถ้า word เป็นอักษรตัวเดียว
- ตรงกันถ้า word มีความยาวสามอักขระพอดี
*.txt) ตรงกันถ้า word ลงท้ายด้วยอักขระ “.txt”
*) ตรงกับค่าใดๆ ของ word. เป็นการดีที่จะรวมสิ่งนี้เป็นรูปแบบสุดท้ายใน a กรณี คำสั่งเพื่อจับค่าใดๆ ของ word ที่ไม่ตรงกับรูปแบบเดิม นั่นคือเพื่อจับค่าที่ไม่ถูกต้องที่เป็นไปได้
นี่คือตัวอย่างรูปแบบในที่ทำงาน:
#! / bin / ทุบตี
read -p " enter word > " case $REPLY in
[[:alpha:]]) echo "เป็นตัวอักษรตัวเดียว" ;; [ABC][0-9]) echo "คือ A, B หรือ C ตามด้วยตัวเลข" ;;
???) echo "มีความยาวสามอักขระ" ;;
*.txt) echo "เป็นคำที่ลงท้ายด้วย '.txt'" ;;
*) echo "เป็นอย่างอื่น" ;; esac
#! / bin / ทุบตี
read -p " enter word > " case $REPLY in
[[:alpha:]]) echo "เป็นตัวอักษรตัวเดียว" ;; [ABC][0-9]) echo "คือ A, B หรือ C ตามด้วยตัวเลข" ;;
???) echo "มีความยาวสามอักขระ" ;;
*.txt) echo "เป็นคำที่ลงท้ายด้วย '.txt'" ;;
*) echo "เป็นอย่างอื่น" ;; esac
นอกจากนี้ยังสามารถรวมหลายรูปแบบโดยใช้อักขระแถบแนวตั้งเป็นตัวคั่นได้ สิ่งนี้จะสร้างรูปแบบเงื่อนไข "หรือ" สิ่งนี้มีประโยชน์สำหรับสิ่งต่าง ๆ เช่นการจัดการทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ตัวอย่างเช่น:
#! / bin / ทุบตี
# case-menu: เมนูระบบขับเคลื่อนข้อมูลโปรแกรมล้าง
เสียงสะท้อน "
โปรดเลือก:
A. แสดงข้อมูลระบบ
B. พื้นที่ดิสก์แสดงผล
C. แสดงการใช้พื้นที่ในบ้าน
Q. ล้มเลิก "
อ่าน -p "ป้อนการเลือก [A, B, C หรือ Q] > "
กรณี $REPLY ใน
q|q) echo "โปรแกรมถูกยกเลิก" ทางออก
;;
ก|ก) echo "ชื่อโฮสต์: $HOSTNAME" เวลาทำงาน
;;
ข|ข) df -h
;;
ค|ค) ถ้า [[ $(id -u) -eq 0 ]]; แล้ว
echo "Home Space Utilization (ผู้ใช้ทั้งหมด)" du -sh /home/*
อื่น
echo "Home Space Utilization ($USER)" du -sh $HOME
fi
#! / bin / ทุบตี
# case-menu: เมนูระบบขับเคลื่อนข้อมูลโปรแกรมล้าง
เสียงสะท้อน "
โปรดเลือก:
A. แสดงข้อมูลระบบ
B. พื้นที่ดิสก์แสดงผล
C. แสดงการใช้พื้นที่ในบ้าน
Q. ล้มเลิก "
อ่าน -p "ป้อนการเลือก [A, B, C หรือ Q] > "
กรณี $REPLY ใน
q|q) echo "โปรแกรมถูกยกเลิก" ทางออก
;;
ก|ก) echo "ชื่อโฮสต์: $HOSTNAME" เวลาทำงาน
;;
ข|ข) df -h
;;
ค|ค) ถ้า [[ $(id -u) -eq 0 ]]; แล้ว
echo "Home Space Utilization (ผู้ใช้ทั้งหมด)" du -sh /home/*
อื่น
echo "Home Space Utilization ($USER)" du -sh $HOME
fi
;;
*) echo "รายการไม่ถูกต้อง" >&2 ออก 1
;;
ว่า C
;;
*) echo "รายการไม่ถูกต้อง" >&2 ออก 1
;;
ว่า C
ที่นี่เราแก้ไข กรณีเมนู โปรแกรมใช้ตัวอักษรแทนตัวเลขในการเลือกเมนู สังเกตว่ารูปแบบใหม่อนุญาตให้ป้อนทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็กได้อย่างไร