What the Waters Left Behind Trailer 2 (2018) Los Olvidados
สารบัญ:
- ทุบตีในขณะที่วง
- ไม่มีที่สิ้นสุดในขณะที่วง
- อ่านไฟล์ตามบรรทัด
- ทำลายและดำเนินการต่องบ
- งบแบ่ง
- ดำเนินการต่องบ
- ข้อสรุป
ลูปเป็นหนึ่งในแนวคิดพื้นฐานของภาษาโปรแกรม ลูปมีประโยชน์เมื่อคุณต้องการรันชุดคำสั่งจำนวนครั้งจนกว่าจะตรงตามเงื่อนไขเฉพาะ
ในภาษาสคริปต์เช่น Bash ลูปจะมีประโยชน์สำหรับการทำงานซ้ำ ๆ โดยอัตโนมัติ มีโครงสร้างพื้นฐาน 3 แบบในการสร้างสคริปต์ Bash สำหรับการวนซ้ำในขณะที่วนซ้ำและจนกว่าจะวนซ้ำ
บทช่วยสอนนี้อธิบายพื้นฐานของ while ลูปใน Bash รวมถึงการแบ่งและดำเนินการต่อเพื่อเปลี่ยนการไหลของลูป
ทุบตีในขณะที่วง
ในขณะที่วงถูกนำมาใช้เพื่อดำเนินการชุดคำสั่งที่กำหนดจำนวนครั้งที่ไม่รู้จักตราบใดที่เงื่อนไขที่กำหนดประเมินเป็นจริง
Bash ในขณะที่วนรอบใช้แบบฟอร์มต่อไปนี้:
while do done
เงื่อนไขถูกประเมินค่าก่อนเรียกใช้งานคำสั่ง หากเงื่อนไขประเมินเป็นจริงคำสั่งจะถูกดำเนินการ มิฉะนั้นหากเงื่อนไขประเมินว่าเป็นเท็จลูปจะถูกยกเลิกและการควบคุมโปรแกรมจะถูกส่งผ่านไปยังคำสั่งที่ตามมา
ในตัวอย่างด้านล่างในการวนซ้ำแต่ละครั้งลูปจะพิมพ์ค่าปัจจุบันของตัวแปร
i
และเพิ่มค่าทีละตัวแปร
i=0 while do echo Number: $i ((i++)) done
Tue loop จะวนซ้ำตราบใดที่
i
มีค่าน้อยกว่าหรือเท่ากับสอง มันจะสร้างผลลัพธ์ต่อไปนี้:
ไม่มีที่สิ้นสุดในขณะที่วง
การวนซ้ำไม่สิ้นสุดคือการวนซ้ำที่ทำซ้ำไปเรื่อย ๆ และไม่สิ้นสุด หากเงื่อนไขประเมินเป็นจริงเสมอคุณจะได้รับการวนซ้ำไม่สิ้นสุด
ในตัวอย่างต่อไปนี้เรากำลังใช้คำสั่งในตัวซึ่งมักจะส่งกลับจริงเพื่อสร้างวงวนไม่สิ้นสุด นอกจากนี้คุณยังสามารถใช้คำสั่งในตัว
true
หรือคำสั่งอื่น ๆ ที่ส่งกลับจริง
ขณะที่ลูปด้านบนจะทำงานอย่างไม่มีกำหนด คุณสามารถยกเลิกการวนซ้ำได้โดยกด
นี่คือเทียบเท่าบรรทัดเดียว: หนึ่งในประเพณีที่พบได้บ่อยที่สุดของ while loop คือการอ่านไฟล์สตรีมข้อมูลหรือตัวแปรทีละบรรทัด ในตัวอย่างต่อไปนี้ห่วงลูปจะอ่านไฟล์
แทนที่จะควบคุมการวนลูปในขณะที่มีเงื่อนไขเรากำลังใช้การเปลี่ยนเส้นทางอินพุต (
เมื่ออ่านไฟล์ทีละบรรทัดให้ใช้การ
โดยค่าเริ่มต้นคำสั่ง
สามารถใช้คำสั่ง break และ continue เพื่อควบคุมการทำงานของ while loop คำสั่ง break จะยกเลิกลูปปัจจุบันและส่งการควบคุมโปรแกรมไปยังคำสั่งที่ตามหลังลูปที่ถูกยกเลิก โดยปกติจะใช้เพื่อยุติการวนซ้ำเมื่อเงื่อนไขตรง ในตัวอย่างต่อไปนี้การดำเนินการของลูปจะถูกขัดจังหวะเมื่อรายการที่วนซ้ำปัจจุบันมีค่าเท่ากับ
คำสั่ง continue ออกจากการวนซ้ำปัจจุบันของลูปและส่งการควบคุมโปรแกรมไปที่การวนซ้ำครั้งถัดไปของลูป ในรายการด้านล่างเมื่อรายการที่มีการทำซ้ำปัจจุบันมีค่าเท่ากับ
ถึงตอนนี้คุณควรมีความเข้าใจที่ดีเกี่ยวกับวิธีใช้ bash ในขณะที่วนซ้ำ
while: do echo "Press to exit." sleep 1 done
while: do echo "Press to exit." sleep 1 done
CTRL+C
while:; do echo 'Press to exit.'; sleep 1; done
while:; do echo 'Press to exit.'; sleep 1; done
อ่านไฟล์ตามบรรทัด
/etc/passwd
ละบรรทัดและพิมพ์แต่ละบรรทัด
file=/etc/passwd while read -r line; do echo $line done < "$file"
< "$file"
) เพื่อส่งไฟล์ไปยังการ
read
ซึ่งเป็นคำสั่งที่ควบคุมการวนซ้ำ ขณะที่ลูปจะทำงานจนกว่าจะอ่านบรรทัดสุดท้าย
read
ด้วยตัวเลือก
-r
เพื่อป้องกันแบ็กสแลชเพื่อทำหน้าที่เป็นอักขระเลี่ยง
read
trims อักขระช่องว่างนำหน้า / ต่อท้าย (ช่องว่างและแท็บ) ใช้ตัวเลือก
IFS=
ก่อนที่คำสั่ง
read
เพื่อป้องกันพฤติกรรมนี้
file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"
ทำลายและดำเนินการต่องบ
งบแบ่ง
2
i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'
ดำเนินการต่องบ
2
คำสั่งดำเนินการต่อจะทำให้การดำเนินการเพื่อกลับไปที่จุดเริ่มต้นของลูปและเพื่อดำเนินการซ้ำต่อไป
i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'
Number: 1 Number: 3 Number: 4 Number: 5 All Done!
ข้อสรุป