<ก่อนหน้านี้ | เนื้อหา | ถัดไป>
กรณี
In ทุบตีคำสั่งผสมหลายตัวเลือกเรียกว่า กรณี. มี syn-tax ดังต่อไปนี้:
กรณี word in
[Belt hold [| Belt hold - คำสั่ง -
ว่า C
ถ้าเราดูที่ อ่านเมนู โปรแกรมจากบทที่ 28 เราจะเห็นตรรกะที่ใช้ในการดำเนินการกับการเลือกของผู้ใช้:
#! / bin / ทุบตี
# read-menu: เมนูระบบขับเคลื่อนข้อมูลโปรแกรมล้าง
เสียงสะท้อน "
โปรดเลือก:
1. แสดงข้อมูลระบบ
2. แสดงพื้นที่ดิสก์
3. แสดงการใช้พื้นที่ในบ้าน
0. เลิก "
อ่าน -p "ป้อนส่วนที่เลือก [0-3] > "
ถ้า [[ $REPLY =~ ^[0-3]$ ]]; แล้วถ้า [[ $REPLY == 0 ]]; แล้ว
#! / bin / ทุบตี
# read-menu: เมนูระบบขับเคลื่อนข้อมูลโปรแกรมล้าง
เสียงสะท้อน "
โปรดเลือก:
1. แสดงข้อมูลระบบ
2. แสดงพื้นที่ดิสก์
3. แสดงการใช้พื้นที่ในบ้าน
0. เลิก "
อ่าน -p "ป้อนส่วนที่เลือก [0-3] > "
ถ้า [[ $REPLY =~ ^[0-3]$ ]]; แล้วถ้า [[ $REPLY == 0 ]]; แล้ว
echo "โปรแกรมถูกยกเลิก" ทางออก
fi
ถ้า [[ $REPLY == 1 ]]; แล้วก้อง "ชื่อโฮสต์: $HOSTNAME" เวลาทำงาน
ทางออก
fi
ถ้า [[ $REPLY == 2 ]]; แล้ว df -h
ทางออก
fi
ถ้า [[ $REPLY == 3 ]]; แล้ว
ถ้า [[ $(id -u) -eq 0 ]]; แล้ว
echo "Home Space Utilization (ผู้ใช้ทั้งหมด)" du -sh /home/*
อื่น
echo "Home Space Utilization ($USER)" du -sh $HOME
fi ทางออก
fi อื่น
echo "รายการไม่ถูกต้อง" >&2 ทางออก 1
fi
echo "โปรแกรมถูกยกเลิก" ทางออก
fi
ถ้า [[ $REPLY == 1 ]]; แล้วก้อง "ชื่อโฮสต์: $HOSTNAME" เวลาทำงาน
ทางออก
fi
ถ้า [[ $REPLY == 2 ]]; แล้ว df -h
ทางออก
fi
ถ้า [[ $REPLY == 3 ]]; แล้ว
ถ้า [[ $(id -u) -eq 0 ]]; แล้ว
echo "Home Space Utilization (ผู้ใช้ทั้งหมด)" du -sh /home/*
อื่น
echo "Home Space Utilization ($USER)" du -sh $HOME
fi ทางออก
fi อื่น
echo "รายการไม่ถูกต้อง" >&2 ทางออก 1
fi
การใช้ กรณีเราสามารถแทนที่ตรรกะนี้ด้วยบางสิ่งที่ง่ายกว่า:
#! / bin / ทุบตี
# case-menu: เมนูระบบขับเคลื่อนข้อมูลโปรแกรมล้าง
เสียงสะท้อน "
โปรดเลือก:
1. แสดงข้อมูลระบบ
2. แสดงพื้นที่ดิสก์
3. แสดงการใช้พื้นที่ในบ้าน
0. เลิก "
อ่าน -p "ป้อนส่วนที่เลือก [0-3] > "
กรณี $REPLY ใน
0) echo "โปรแกรมถูกยกเลิก" ทางออก
;;
#! / bin / ทุบตี
# case-menu: เมนูระบบขับเคลื่อนข้อมูลโปรแกรมล้าง
เสียงสะท้อน "
โปรดเลือก:
1. แสดงข้อมูลระบบ
2. แสดงพื้นที่ดิสก์
3. แสดงการใช้พื้นที่ในบ้าน
0. เลิก "
อ่าน -p "ป้อนส่วนที่เลือก [0-3] > "
กรณี $REPLY ใน
0) echo "โปรแกรมถูกยกเลิก" ทางออก
;;
1) echo "ชื่อโฮสต์: $HOSTNAME" เวลาทำงาน
;;
2) df -h
;;
3) ถ้า [[ $(id -u) -eq 0 ]]; แล้ว
echo "Home Space Utilization (ผู้ใช้ทั้งหมด)" du -sh /home/*
อื่น
echo "Home Space Utilization ($USER)" du -sh $HOME
fi
;;
*) echo "รายการไม่ถูกต้อง" >&2 ออก 1
;;
ว่า C
1) echo "ชื่อโฮสต์: $HOSTNAME" เวลาทำงาน
;;
2) df -h
;;
3) ถ้า [[ $(id -u) -eq 0 ]]; แล้ว
echo "Home Space Utilization (ผู้ใช้ทั้งหมด)" du -sh /home/*
อื่น
echo "Home Space Utilization ($USER)" du -sh $HOME
fi
;;
*) echo "รายการไม่ถูกต้อง" >&2 ออก 1
;;
ว่า C
พื้นที่ กรณี คำสั่งดูค่าของ wordในตัวอย่างของเรา ค่าของ ตอบ ตัวแปรแล้วพยายามจับคู่กับตัวแปรที่ระบุตัวใดตัวหนึ่ง รูปแบบ. เมื่อพบคู่ที่ตรงกัน คำสั่ง ที่เกี่ยวข้องกับรูปแบบที่ระบุจะถูกดำเนินการ หลังจากพบการจับคู่แล้ว จะไม่มีการพยายามจับคู่เพิ่มเติมอีก