Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม BASH

วิธีใช้จนกว่าจะวนซ้ำในเชลล์สคริปต์ของคุณ

ในทุบตี สำหรับ , ในขณะที่ และ จนถึง เป็นโครงสร้างสามวง แม้ว่าแต่ละลูปจะมีความแตกต่างกันทางวากยสัมพันธ์และการใช้งาน จุดประสงค์ของพวกเขาคือการวนซ้ำในบล็อกของโค้ดเมื่อมีการประเมินนิพจน์บางนิพจน์

จนถึง วงใช้เพื่อรันบล็อกของรหัสจนกว่านิพจน์จะถูกประเมินว่าเป็นเท็จ นี่คือสิ่งที่ตรงกันข้ามกับลูป 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
วิธีใช้จนกว่าจะวนซ้ำในเชลล์สคริปต์ของคุณ

เพียงเท่านี้สำหรับบทความนี้ เราจะจับคุณด้วยบทความที่น่าสนใจอื่น ๆ เร็ว ๆ นี้ 'จนถึง ' จากนั้นอ่านต่อและสนับสนุนพวกเราต่อไป