A day with Scandale - Harmonie Collection - Spring / Summer 2013
สารบัญ:
ลูปเป็นหนึ่งในแนวคิดพื้นฐานของภาษาโปรแกรม ลูปมีประโยชน์เมื่อคุณต้องการเรียกใช้ชุดคำสั่งซ้ำแล้วซ้ำอีกจนกว่าจะตรงตามเงื่อนไขที่กำหนด
ในภาษาสคริปต์เช่น Bash ลูปจะมีประโยชน์สำหรับการทำงานซ้ำ ๆ โดยอัตโนมัติ มีโครงสร้างพื้นฐาน 3 แบบในการสร้างสคริปต์ Bash สำหรับการวนซ้ำในขณะที่วนซ้ำและจนกว่าจะวนซ้ำ
บทช่วยสอนนี้อธิบายพื้นฐานของการวนซ้ำใน Bash
ทุบตีจนกว่าวง
จนกระทั่งลูปถูกใช้เพื่อดำเนินการชุดคำสั่งที่กำหนดตราบใดที่เงื่อนไขที่กำหนดให้ประเมินว่าเป็นเท็จ
Bash จนกระทั่งวนรอบใช้แบบฟอร์มต่อไปนี้:
until do done
เงื่อนไขถูกประเมินค่าก่อนเรียกใช้งานคำสั่ง หากเงื่อนไขประเมินเป็นเท็จคำสั่งจะถูกดำเนินการ มิฉะนั้นหากเงื่อนไขประเมินเป็นจริงลูปจะถูกยกเลิกและการควบคุมโปรแกรมจะถูกส่งผ่านไปยังคำสั่งที่ตามมา
ในตัวอย่างด้านล่างในการวนซ้ำแต่ละครั้งลูปจะพิมพ์ค่าปัจจุบันของตัว
counter
ตัวแปรและเพิ่มค่าทีละตัวแปร
#!/bin/bash counter=0 until do echo Counter: $counter ((counter++)) done
วนซ้ำซ้ำตราบใดที่ตัวแปรตัว
counter
มีค่ามากกว่าสี่ สคริปต์จะสร้างผลลัพธ์ต่อไปนี้:
Counter: 0 Counter: 1 Counter: 2 Counter: 3 Counter: 4 Counter: 5
Bash จนกว่า Loop Loop
สคริปต์ต่อไปนี้อาจมีประโยชน์หากโฮสต์ git ของคุณหยุดทำงานและแทนที่จะพิมพ์
git pull
ด้วยตนเอง
git pull
หลายครั้งจนกว่าโฮสต์จะออนไลน์คุณสามารถเรียกใช้สคริปต์ได้หนึ่งครั้ง มันจะพยายามดึงที่เก็บจนกว่ามันจะดึงได้สำเร็จ
#!/bin/bash until git pull &> /dev/null do echo "Waiting for the git host…" sleep 1 done echo -e "\nThe git repository is pulled."
สคริปต์จะพิมพ์“ กำลังรอโฮสต์ git …” และพักหนึ่งวินาทีจนกว่าโฮสต์ git จะออนไลน์ เมื่อดึงพื้นที่เก็บข้อมูลแล้วมันจะพิมพ์“ พื้นที่เก็บข้อมูล git ถูกดึงออกมา”
Waiting for the git host… Waiting for the git host… Waiting for the git host… The git repository is pulled.
ข้อสรุป
while
และ
until
ลูปจะมีความคล้ายคลึงกันโดยมีความแตกต่างที่สำคัญคือว่าลูป
while
วนซ้ำตราบใดที่เงื่อนไขประเมิน
true
และ
until
ลูป
until
วนซ้ำตราบใดที่เงื่อนไขประเมิน
false