<ก่อนหน้านี้ | เนื้อหา | ถัดไป>
เมนู
ประเภทของการโต้ตอบทั่วไปเรียกว่า ขับเคลื่อนด้วยเมนู. ในโปรแกรมที่ขับเคลื่อนด้วยเมนู ผู้ใช้จะได้รับรายการตัวเลือกและขอให้เลือกอย่างใดอย่างหนึ่ง ตัวอย่างเช่น เราสามารถจินตนาการถึงโปรแกรมที่นำเสนอสิ่งต่อไปนี้:
โปรดเลือก:
1. แสดงข้อมูลระบบ
2. แสดงพื้นที่ดิสก์
3. แสดงการใช้พื้นที่ในบ้าน
0. เลิก
เข้าสู่ส่วนที่เลือก [0-3] >
โปรดเลือก:
1. แสดงข้อมูลระบบ
2. แสดงพื้นที่ดิสก์
3. แสดงการใช้พื้นที่ในบ้าน
0. เลิก
เข้าสู่ส่วนที่เลือก [0-3] >
ใช้สิ่งที่เราเรียนรู้จากการเขียนของเรา sys_info_page โปรแกรม เราสามารถสร้างโปรแกรมที่ขับเคลื่อนด้วยเมนูเพื่อทำงานบนเมนูด้านบน:
#! / bin / ทุบตี
# read-menu: เมนูระบบขับเคลื่อนข้อมูลโปรแกรมล้าง
เสียงสะท้อน "
โปรดเลือก:
1. แสดงข้อมูลระบบ
2. แสดงพื้นที่ดิสก์
3. แสดงการใช้พื้นที่ในบ้าน
0. เลิก "
อ่าน -p "ป้อนส่วนที่เลือก [0-3] > "
#! / 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
ถ้า [[ $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
สคริปต์นี้แบ่งออกเป็นสองส่วนตามหลักเหตุผล ส่วนแรกจะแสดงเมนูและป้อนคำตอบจากผู้ใช้ ส่วนที่สองระบุการตอบสนองและดำเนินการดำเนินการที่เลือก สังเกตการใช้ ทางออก คำสั่งในสคริปต์นี้ ใช้ที่นี่เพื่อป้องกันสคริปต์จากการรันโค้ดที่ไม่จำเป็นหลังจากดำเนินการแล้ว การมีอยู่ของจุดออกหลายจุดในโปรแกรมโดยทั่วไปเป็นความคิดที่ไม่ดี (ทำให้ตรรกะของโปรแกรมเข้าใจยากขึ้น) แต่ใช้งานได้ในสคริปต์นี้