<ก่อนหน้านี้ | Contents | ถัดไป>
ในขณะที่
bash สามารถแสดงความคิดที่คล้ายกันได้ สมมติว่าเราต้องการแสดงตัวเลขห้าตัวตามลำดับ
ลำดับขั้นตั้งแต่หนึ่งถึงห้า NS ทุบตี สคริปต์สามารถสร้างได้ดังนี้:
#! / bin / ทุบตี
# while-count: แสดงชุดตัวเลข count=1
ในขณะที่ [[ $count -le 5 ]]; ทำ echo $count count=$((นับ + 1))
ทำ
ก้อง "เสร็จแล้ว"
#! / bin / ทุบตี
# while-count: แสดงชุดตัวเลข count=1
ในขณะที่ [[ $count -le 5 ]]; ทำ echo $count count=$((นับ + 1))
ทำ
ก้อง "เสร็จแล้ว"
เมื่อดำเนินการ สคริปต์นี้จะแสดงสิ่งต่อไปนี้:
[me@linuxbox ~]$ ในขณะที่นับ
1
2
3
4
5
เสร็จ
[me@linuxbox ~]$ ในขณะที่นับ
1
2
3
4
5
เสร็จ
ไวยากรณ์ของ ในขณะที่ คำสั่งคือ:
ในขณะที่ คำสั่ง; ทำ คำสั่ง; เสร็จแล้ว
Like if, ในขณะที่ ประเมินสถานะการออกของรายการคำสั่ง ตราบใดที่สถานะการออกเป็นศูนย์ จะดำเนินการคำสั่งภายในลูป ในสคริปต์ด้านบน ตัวแปร นับ ถูกสร้างและกำหนดค่าเริ่มต้นเป็น 1 The ในขณะที่ คำสั่งประเมินสถานะการออกของ - คำสั่งผสม ตราบใดที่ - คำสั่งส่งคืนสถานะการออกเป็นศูนย์ คำสั่งภายในลูปจะถูกดำเนินการ เมื่อสิ้นสุดแต่ละรอบ - คำสั่งซ้ำ หลังจากวนซ้ำห้าครั้ง ค่าของ นับ ได้เพิ่มขึ้นเป็น 6, - คำสั่งไม่ส่งคืนสถานะการออกเป็นศูนย์อีกต่อไปและการวนซ้ำสิ้นสุดลง โปรแกรมดำเนินการต่อด้วยคำสั่งถัดไปหลังจากวนซ้ำ
เราสามารถใช้ไฟล์ ในขณะที่วนซ้ำ เพื่อปรับปรุง อ่านเมนู โปรแกรมจากบทที่แล้ว:
#! / bin / ทุบตี
# while-menu: โปรแกรมข้อมูลระบบขับเคลื่อนด้วยเมนู
#! / bin / ทุบตี
# while-menu: โปรแกรมข้อมูลระบบขับเคลื่อนด้วยเมนู
ดีเลย์=3 # จำนวนวินาทีในการแสดงผล
ในขณะที่ [[ $REPLY != 0 ]]; ทำ
ชัดเจน
แมว <<- _EOF_
โปรดเลือก:
1. แสดงข้อมูลระบบ
2. แสดงพื้นที่ดิสก์
3. แสดงการใช้พื้นที่ในบ้าน
0. เลิก
_อีโอเอฟ_
อ่าน -p "ป้อนส่วนที่เลือก [0-3] > "
ถ้า [[ $REPLY =~ ^[0-3]$ ]]; แล้วถ้า [[ $REPLY == 1 ]]; แล้ว
echo "ชื่อโฮสต์: $HOSTNAME" เวลาทำงาน
นอน $DELAY
fi
ถ้า [[ $REPLY == 2 ]]; แล้ว df -h
นอน $DELAY
fi
ถ้า [[ $REPLY == 3 ]]; แล้ว
ถ้า [[ $(id -u) -eq 0 ]]; แล้ว
echo "Home Space Utilization (ผู้ใช้ทั้งหมด)" du -sh /home/*
อื่น
echo "Home Space Utilization ($USER)" du -sh $HOME
fi
นอน $DELAY
fi
อื่น
echo "รายการไม่ถูกต้อง"
นอน $DELAY
fi
ทำ
echo "โปรแกรมถูกยกเลิก"
ดีเลย์=3 # จำนวนวินาทีในการแสดงผล
ในขณะที่ [[ $REPLY != 0 ]]; ทำ
ชัดเจน
แมว <<- _EOF_
โปรดเลือก:
1. แสดงข้อมูลระบบ
2. แสดงพื้นที่ดิสก์
3. แสดงการใช้พื้นที่ในบ้าน
0. เลิก
_อีโอเอฟ_
อ่าน -p "ป้อนส่วนที่เลือก [0-3] > "
ถ้า [[ $REPLY =~ ^[0-3]$ ]]; แล้วถ้า [[ $REPLY == 1 ]]; แล้ว
echo "ชื่อโฮสต์: $HOSTNAME" เวลาทำงาน
นอน $DELAY
fi
ถ้า [[ $REPLY == 2 ]]; แล้ว df -h
นอน $DELAY
fi
ถ้า [[ $REPLY == 3 ]]; แล้ว
ถ้า [[ $(id -u) -eq 0 ]]; แล้ว
echo "Home Space Utilization (ผู้ใช้ทั้งหมด)" du -sh /home/*
อื่น
echo "Home Space Utilization ($USER)" du -sh $HOME
fi
นอน $DELAY
fi
อื่น
echo "รายการไม่ถูกต้อง"
นอน $DELAY
fi
ทำ
echo "โปรแกรมถูกยกเลิก"
ด้วยการปิดเมนูในขณะที่วนรอบเราสามารถให้โปรแกรมแสดงเมนูซ้ำหลังจากการเลือกแต่ละครั้ง การวนซ้ำจะดำเนินต่อไปตราบเท่าที่ ตอบ ไม่เท่ากับ “0” และเมนูจะปรากฏขึ้นอีกครั้ง ทำให้ผู้ใช้มีโอกาสเลือกรายการอื่นได้ ในตอนท้ายของแต่ละการกระทำ a นอนหลับ คำสั่งถูกดำเนินการเพื่อให้โปรแกรมหยุดชั่วคราวเป็นเวลาสองสามวินาทีเพื่อให้เห็นผลลัพธ์ของการเลือกก่อนที่หน้าจอจะถูกล้างและเมนูจะแสดงขึ้นอีกครั้ง ครั้งหนึ่ง ตอบ เท่ากับ “0,” หมายถึงการเลือก “ออก”
วนสิ้นสุดและดำเนินการต่อไปกับบรรทัดต่อไป ทำ.