ในทุบตี สำหรับ , ในขณะที่ และ จนถึง เป็นโครงสร้างสามวง แม้ว่าแต่ละลูปจะมีความแตกต่างกันทางวากยสัมพันธ์และการใช้งาน จุดประสงค์ของพวกเขาคือการวนซ้ำในบล็อกของโค้ดเมื่อมีการประเมินนิพจน์บางนิพจน์
จนถึง วงใช้เพื่อรันบล็อกของรหัสจนกว่านิพจน์จะถูกประเมินว่าเป็นเท็จ นี่คือสิ่งที่ตรงกันข้ามกับลูป while ในขณะที่ลูปรันบล็อกโค้ดในขณะที่นิพจน์เป็นจริงและ จนถึง ลูปทำตรงกันข้าม
until [ expression ] do code block ... ... done
มาทำลายไวยากรณ์กันเถอะ
- ในการเริ่มลูป คุณควรใช้จนกว่าคีย์เวิร์ดตามด้วยนิพจน์ภายในวงเล็บปีกกาเดี่ยวหรือคู่
- นิพจน์ควรได้รับการประเมินว่าเป็นเท็จจนกว่าจะเริ่มรันโค้ดบล็อก
- บล็อกโค้ดจริงอยู่ระหว่าง do และ done
ในบทความสั้นๆ นี้ คุณจะได้เรียนรู้วิธีใช้จนถึงลูปในเชลล์สคริปต์โดยใช้ตัวอย่างต่อไปนี้
สร้าง Infinite Loop ในสคริปต์
คุณสามารถสร้างการวนซ้ำที่ไม่สิ้นสุดได้โดยใช้ เท็จ คำสั่งเป็นนิพจน์ เมื่อคุณพยายามจำลองการวนซ้ำที่ไม่สิ้นสุด ให้ลองใช้ สลีป ซึ่งจะผ่านสคริปต์เป็นระยะๆ
count=0 until false do echo "Counter = $count" ((count++)) sleep 2 done
สร้างงบบรรทัดเดียว
คุณสามารถสร้างคำสั่งวนรอบบรรทัดเดียว ลองดูที่รหัสด้านล่าง นี่เหมือนกับตัวอย่างการวนซ้ำแบบอนันต์แรกของเรา แต่อยู่ในบรรทัดเดียว ที่นี่คุณต้องใช้เครื่องหมายอัฒภาค (;)
เพื่อยุติแต่ละคำสั่ง
# until false; do echo "Counter = $count"; ((count++)); sleep 2; done
เปลี่ยนกระแสด้วยการหยุดพักและดำเนินการต่อ
คุณสามารถใช้คำสั่งแบ่งและดำเนินการต่อภายในในขณะที่ ห่วง แตกหัก คำสั่งจะออกจากลูปและจะส่งการควบคุมไปยังคำสั่งถัดไปในขณะที่คำสั่งดำเนินการต่อไปจะข้ามการวนซ้ำปัจจุบันและเริ่มการวนซ้ำถัดไปในลูป
ฉันกำลังใช้ตัวอย่างวนซ้ำอนันต์เดียวกัน ที่นี่เมื่อนับเท่ากับห้า ดำเนินการต่อ คำสั่งจะข้ามไปยังการวนซ้ำถัดไปโดยข้ามส่วนที่เหลือของลูป ในทำนองเดียวกัน วง แตก เมื่อนับเท่ากับหรือมากกว่า 10
count=0 until false do ((count++)) if [[ $count -eq 5 ]] then continue elif [[ $count -ge 10 ]] then break fi echo "Counter = $count" done
เพียงเท่านี้สำหรับบทความนี้ เราจะจับคุณด้วยบทความที่น่าสนใจอื่น ๆ เร็ว ๆ นี้ 'จนถึง ' จากนั้นอ่านต่อและสนับสนุนพวกเราต่อไป