ในบทความนี้ เราจะมาดูวิธีการใช้ ตัวแบ่ง และ ต่อ ในสคริปต์ทุบตี ใน bash เรามีโครงสร้างลูปหลักสามตัว (สำหรับ , ในขณะที่ , จนถึง ). พัก และ ต่อ คำสั่งเป็น bash ในตัวและใช้เพื่อเปลี่ยนโฟลว์ของลูปของคุณ แนวคิดเรื่อง break and continue นี้มีให้บริการในภาษาโปรแกรมยอดนิยม เช่น Python .
$ type -a break continue
ออกจากลูปด้วยคำสั่งแบ่ง
แตกหัก คำสั่งจะออกจากลูปและการควบคุมจะถูกส่งไปยังคำสั่งถัดไปในลูป คุณสามารถเรียกใช้ ความช่วยเหลือ คำสั่งเพื่อรับข้อมูลเกี่ยวกับ พัก คำสั่ง
$ help break
ไวยากรณ์พื้นฐานของการแบ่ง
$ break [n] n is optional
ลองดูตัวอย่างด้านล่าง นี่เป็นวิธีง่ายๆ สำหรับการวนซ้ำที่วนซ้ำในช่วงของค่าตั้งแต่ 1 ถึง 20 ในขั้นตอนที่เพิ่มขึ้น 2 คำสั่งแบบมีเงื่อนไขจะประเมินนิพจน์และเมื่อ true($val =9) จากนั้นจะเรียกใช้คำสั่ง break และการวนซ้ำจะถูกยกเลิกโดยข้ามการวนซ้ำที่เหลือ
#!/usr/bin/bash for val in {1..20..2} do If [[ $val -eq 9 ]] then break else echo "printing ${val}" fi done
ข้ามการทำซ้ำด้วยคำชี้แจงต่อ
จะเกิดอะไรขึ้นถ้าคุณไม่ต้องการที่จะออกจากลูปโดยสมบูรณ์ แต่ข้ามบล็อกของโค้ดเมื่อตรงตามเงื่อนไขที่กำหนด สามารถทำได้ด้วย ดำเนินการต่อ คำแถลง. ดำเนินการต่อ คำสั่งจะข้ามการดำเนินการของบล็อกโค้ดเมื่อตรงตามเงื่อนไขที่กำหนดและการควบคุมจะถูกส่งกลับไปยังคำสั่งวนซ้ำสำหรับการวนซ้ำครั้งต่อไป
เพื่อเข้าถึงความช่วยเหลือ
$ help continue
ลองดูตัวอย่างด้านล่าง นี่เป็นตัวอย่างเดียวกับที่เราใช้ในการสาธิตคำสั่งพัก ตอนนี้เมื่อ วาล ได้รับการประเมินเป็นเก้าแล้ว ดำเนินการต่อ คำสั่งจะข้ามกลุ่มโค้ดที่เหลือทั้งหมดและส่งการควบคุมไปยัง for loop สำหรับการวนซ้ำครั้งต่อไป
#!/usr/bin/bash for val in {1..20..2} do If [[ $val -eq 9 ]] then continue fi echo "printing ${val}" done
หากคุณรู้จัก python แล้ว แตก และ ต่อ พฤติกรรมก็เหมือนกันในไพ ธ อนเช่นกัน แต่ python มีคำสั่งควบคุมลูปอีกหนึ่งคำสั่งที่เรียกว่า ผ่าน .
ผ่าน ก็เหมือน ว่าง คำสั่งและล่ามจะอ่านแต่จะไม่ดำเนินการใดๆ มันส่งผลให้ไม่มีการดำเนินการ Bash ไม่ได้ให้ข้อความที่คล้ายกัน แต่เราสามารถเลียนแบบพฤติกรรมนี้ได้โดยใช้คำหลักจริงหรือ เครื่องหมายโคลอน(:) . ทั้ง true และ colon เป็น shell ในตัวและไม่ดำเนินการใดๆ
$ type -a : true
ลองดูตัวอย่างด้านล่าง เมื่อ เงื่อนไข คำสั่งถูกประเมินว่า จริง($val =9) แล้ว จริง คำสั่งจะไม่ทำอะไรเลยและวนซ้ำจะดำเนินต่อไป
#!/usr/bin/bash for val in {1..20..2} do If [[ $val -eq 9 ]] then true fi echo "printing ${val}" done
เพียงเท่านี้สำหรับบทความนี้ เรายินดีรับฟังความคิดเห็นอันมีค่าของคุณและคำแนะนำต่างๆ ที่คุณมี