10 ตัวอย่าง Bash Loop ที่ยอดเยี่ยมและยอดเยี่ยม

10 Tawxyang Bash Loop Thi Yxd Yeiym Laea Yxd Yeiym



ในภาษาการเขียนโปรแกรม การวนซ้ำมีสามประเภทหลัก (for, while และ until) ลูปทั้งสามประเภทมีความสำคัญในรูปแบบที่แตกต่างกัน ไม่มีความแตกต่างระหว่างลูป while และ until แต่สำหรับลูปนั้นทำงานค่อนข้างแตกต่างจากทั้งสองนี้ นั่นเป็นเหตุผลที่คุณสามารถใช้ลูปเหล่านี้เพื่อสร้างสคริปต์โต้ตอบในฐานะผู้ใช้แบบทุบตี

ดังนั้นการเรียนรู้ตัวอย่างแบชสามารถช่วยคุณพัฒนาทักษะในการสร้างสคริปต์ได้ ดังนั้นในบทช่วยสอนนี้ เราจะรวมตัวอย่าง bash loop ที่ยอดเยี่ยมและยอดเยี่ยม 10 ตัวอย่างที่คุณสามารถลองใช้เพื่อพัฒนาทักษะการเขียนสคริปต์ของคุณ







10 ตัวอย่าง Bash Loop ที่ยอดเยี่ยมและยอดเยี่ยม

ในส่วนนี้ เราจะอธิบายตัวอย่างต่างๆ และแนวทางที่เราใช้ในลูป



คำสั่ง Seq พร้อมการวนซ้ำใน Bash

คุณสามารถใช้คำสั่ง seq ใน for loop เพื่อสร้างลำดับของตัวเลข ตัวอย่างเช่น คุณมีสคริปต์ทุบตี “File.sh” ที่มีรหัสต่อไปนี้:



#!/bin/bash
สำหรับ ใน $ ( รองลงมา 5 สอง 25 )
ทำ
เสียงสะท้อน 'จำนวน $ก เป็น'
เสร็จแล้ว





คุณจะได้รับผลลัพธ์ต่อไปนี้หลังจากเรียกใช้สคริปต์ในเทอร์มินัล:

. / ไฟล์. sh




เปลี่ยนชื่อไฟล์โดยใช้ลูป

การใช้สคริปต์ทุบตี คุณสามารถใช้ for วนซ้ำเพื่อเปลี่ยนชื่อไฟล์หลายไฟล์ ตัวอย่างเช่น คุณมีไฟล์ .txt หลายไฟล์ และต้องการเพิ่มวันที่ปัจจุบันด้วยชื่อ นี่คือตัวอย่างสคริปต์ที่คุณสามารถใช้ได้:

#!/bin/bash
สำหรับ ใน $ ( * .txt ) ; ทำ
เอ็มวี $ก ( ชื่อฐาน $ก .txt ) _$ ( วันที่ % % % ) .txt
เสร็จแล้ว


ตอนนี้ คุณสามารถเรียกใช้สคริปต์ได้ และจะเปลี่ยนชื่อไฟล์ .txt ทั้งหมดโดยเพิ่มวันที่ปัจจุบัน:

. / MyFile.sh



ในทำนองเดียวกัน คุณสามารถเปลี่ยนนามสกุลของไฟล์ผ่านสคริปต์เดียว ดังนั้นมาเปลี่ยนนามสกุล .txt เป็น .sh ผ่านสคริปต์ต่อไปนี้:

#!/bin/bash
สำหรับ ไฟล์ ใน * .txt; ทำ
เอ็มวี -- ' $ไฟล์ ' '{file%.txt}.sh'
เสร็จแล้ว

หลังจากเรียกใช้สคริปต์ในเทอร์มินัลแล้ว คุณจะได้รับไฟล์ .sh แทนที่จะเป็น .txt:

. / MyFile.sh


ไม่มีที่สิ้นสุดสำหรับการวนซ้ำใน Bash

เมื่อไม่มีการกำหนดเงื่อนไขการสิ้นสุดในลูป จะเรียกว่าการวนซ้ำไม่สิ้นสุด ในตัวอย่างนี้ของ Bash loop เราจะดูที่ infinite for loop in bash ลูปที่ไม่มีที่สิ้นสุดต่อไปนี้ถูกกำหนดโดยเครื่องหมายอัฒภาคคู่ ( ; ; ) และไม่มีส่วนเริ่มต้น การกระทำ หรือการสิ้นสุดใดๆ

สคริปต์ด้านล่างจะดำเนินต่อไปจนกว่าคุณจะกด Ctrl+C หรือพิมพ์ 'quit' เป็นอินพุต สคริปต์นี้จะพิมพ์ทุกหมายเลขตั้งแต่ 10 ถึง 50 ที่ได้รับเป็นอินพุต มิฉะนั้นจะพิมพ์ว่า 'หมายเลขอยู่นอกช่วง'

#!/bin/bash
#วนไม่มีสิ้นสุด
สำหรับ ( ( ; ; ) )
ทำ
เสียงสะท้อน 'ป้อนตัวเลขระหว่าง 10 ถึง 50'
อ่าน
ถ้า [ $n == 'เลิก' ]
แล้ว
เสียงสะท้อน 'สิ้นสุด'
ทางออก 0
เป็น
ถ้า ( ( $n < 10 || $n > ห้าสิบ ) )
แล้ว
เสียงสะท้อน 'ตัวเลขอยู่นอกช่วง'
อื่น
เสียงสะท้อน “เป็นตัวเลข. $n '
เป็น
เสร็จแล้ว

เราให้อินพุตที่ถูกต้อง 45 และ 23 รายการในสคริปต์ด้านบน หลังจากนั้นเราพิมพ์ 2 เป็นอินพุตซึ่งบอกในเอาต์พุตว่า 'ตัวเลขอยู่นอกช่วง' หลังจากนั้นเมื่อต้องการปิดสคริปต์ ให้พิมพ์ exit เป็นอินพุต คุณยังสามารถกด Ctrl+C เพื่อออกจากการวนซ้ำไม่สิ้นสุดได้ที่นี่

สาม Expression Loop ใน Bash

เป็นที่ทราบกันดีอยู่แล้วจากชื่อลูปสามนิพจน์ว่าประกอบด้วยสามนิพจน์ เรียกอีกอย่างว่านิพจน์ควบคุม นิพจน์แรก (EXP1) คือตัวเริ่มต้น นิพจน์ที่สอง (EXP2) คือการทดสอบลูปหรือเงื่อนไข และนิพจน์ที่สาม (EXP3) คือนิพจน์/ขั้นตอนในการนับ ให้เราเรียกใช้ลูปสามนิพจน์ใน bash:

#!/bin/bash
สำหรับ ( ( = 5 ; น > = 1 ; น-- ) )
ทำ
เสียงสะท้อน 'หนังสือ $n '
เสร็จแล้ว

เมื่อรันสคริปต์ด้านบน คุณจะได้ผลลัพธ์ต่อไปนี้

วนซ้ำด้วยหลายเงื่อนไข

เราได้ใช้จนถึงลูปที่มีเงื่อนไขหลายข้อในตัวอย่าง bash loop ต่อไปนี้ ในสคริปต์นี้ เรานำตัวแปร 'm' และ 'n' สองตัวที่มีค่า 20 และ 10 ตามลำดับ และรักษาขีดจำกัดไว้ที่ 15 ที่นี่เราใส่เงื่อนไข 'm' และ 'n' เข้าด้วยกันในลูป โดยลูปจะทำงานจนกว่าค่า “m” จะน้อยกว่าค่าลิมิต และค่า “n” มากกว่าค่าลิมิต

#!/bin/bash
จำกัด = สิบห้า
= ยี่สิบ
= 10
จนกระทั่ง [ [ $ม -ล วงเงิน $ || $n -gt วงเงิน $ ] ] ;
ทำ
เสียงสะท้อน 'ถ้าม= $ม แล้ว N = $n '
( ( ม-- ) )
( ( n++ ) )
เสร็จแล้ว

คุณจะเห็นว่าการรันสคริปต์ด้านบนจะทำงานจนกว่าค่าของ “m” และ “n” จะมาถึงระดับเดียวกัน

อ่านไฟล์ใน Bash

ใน bash คุณสามารถอ่านเนื้อหาของไฟล์ได้หลายวิธี ในตัวอย่างของ bash loop เราจะอ่านเนื้อหาของไฟล์ผ่านชื่อไฟล์ เราสามารถใช้สคริปต์ต่อไปนี้เพื่ออ่านไฟล์ใน bash:

#!/bin/bash
เสียงสะท้อน 'เนื้อหาของไฟล์ที่ป้อนคือ:'
ในขณะที่
อ่าน ไลน์
ทำ
เสียงสะท้อน $line
เสร็จแล้ว < ~ เอกสาร / Linuxhint.txt

หลังจากเรียกใช้สคริปต์ด้านบนแล้ว คุณสามารถอ่านเนื้อหาทั้งหมดของไฟล์ที่ป้อนได้

การเขียนไปยังไฟล์

คุณสามารถใช้ลูปในสคริปต์เพื่อแก้ไขไฟล์ได้จากเทอร์มินัล ตัวอย่างเช่น หากเรามีไฟล์ txt “Example.txt” และเราต้องการเพิ่มข้อมูลบางอย่าง เราสามารถใช้สคริปต์ต่อไปนี้:


หากคุณเรียกใช้สคริปต์ด้านบน ระบบจะขอให้คุณป้อนรายละเอียด:


เมื่อคุณป้อนรายละเอียดแล้ว โปรดกด CTRL + D เพื่อบันทึกไฟล์ และ CTRL + Z เพื่อสิ้นสุดกระบวนการให้เสร็จสิ้น

ทำลายและดำเนินการวนรอบคำสั่งต่อไปใน Bash

ใน bash คุณสามารถดำเนินการต่อคำสั่งวนซ้ำหลังจากหยุดพัก คำสั่ง break ออกจากลูปแล้วส่งผ่านการควบคุมไปยังคำสั่งที่กำหนดถัดไป การวนซ้ำหมายเลขสองเริ่มต้นหลังจากการวนซ้ำปัจจุบันถูกข้ามด้วยคำสั่งดำเนินการต่อเดียวกัน

#!/bin/bash
ในหนึ่ง = 16
จนกระทั่ง เท็จ
ทำ
( ( ในหนึ่ง-- ) )
ถ้า [ [ จำนวน $ -eq 13 ] ]
แล้ว
ดำเนินต่อ
เอลฟ์ [ [ จำนวน $ - เดอะ 4 ] ]
แล้ว
หยุดพัก
เป็น
เสียงสะท้อน 'LinuxHint= จำนวน $ '
เสร็จแล้ว

ในสคริปต์ทุบตีต่อไปนี้ คุณจะเห็นว่าเมื่อ 'num' เท่ากับ 13 จะข้ามส่วนที่เหลือของเนื้อหาลูปและข้ามไปยังการวนซ้ำถัดไป ในทำนองเดียวกัน การวนซ้ำจะหยุดเมื่อ 'num' น้อยกว่าหรือเท่ากับ 4


สคริปต์ด้านบนแสดงให้เห็นว่าการวนซ้ำเริ่มต้นที่ 15 หยุดที่ 13 และดำเนินต่อไปจนถึง 5

การคำนวณค่าเฉลี่ยใน Bash

คุณสามารถคำนวณค่าเฉลี่ยได้โดยการรันสคริปต์ใน bash loop ในกรณีนี้ ผู้ใช้สามารถคำนวณค่าเฉลี่ยของตัวเลขในช่วงที่กำหนดได้ สคริปต์ต่อไปนี้จะคำนวณค่าเฉลี่ยของข้อมูลที่ป้อนโดยผู้ใช้

#!/bin/bash
เครื่องหมาย = '0'
เฉลี่ย = '0'
ผลรวม = '500'
บนหนึ่ง = '5'
ในขณะที่ จริง ; ทำ
เสียงสะท้อน -น 'ใส่เครื่องหมายหรือกด 'q' เพื่อยกเลิก ' ; อ่าน เครื่องหมาย;
ถ้า ( ( ' เครื่องหมาย $ ' < '0' ) ) || ( ( ' เครื่องหมาย $ ' > '100' ) ) ; แล้ว
เสียงสะท้อน 'กรุณาใส่เครื่องหมายของคุณ'
เอลฟ์ [ ' เครื่องหมาย $ ' == 'คิว' ] ; แล้ว
เสียงสะท้อน 'คะแนนเฉลี่ยคือ: เฉลี่ย $ %'
หยุดพัก
อื่น
ผลรวม =$ [ $SUM + เครื่องหมาย $ ]
บนหนึ่ง =$ [ $NUM + 1 ]
เฉลี่ย =$ [ $SUM / $NUM ]
เป็น
เสร็จแล้ว

หากอินพุตไม่อยู่ในช่วง ข้อความจะถูกพิมพ์ว่า “กรุณาใส่เครื่องหมายของคุณ” เมื่อผู้ใช้กด “q” หลังจากป้อนเครื่องหมายทั้งหมด สคริปต์จะคำนวณค่าเฉลี่ยโดยประมาณของตัวเลขทั้งหมดที่ป้อน

เมื่อรันสคริปต์ด้านบน ผลลัพธ์ของคุณจะเป็นดังนี้

อ่านอาร์กิวเมนต์บรรทัดคำสั่งใน Bash

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

#!/bin/bash
ในขณะที่ รับ N:F:M: เลือก
ทำ
กรณี ' ${OPT} '
ใน
เอ็น ) ชื่อ = ${OPTARG} ;;
) ชื่อบิดา = ${OPTARG} ;;
) ชื่อแม่ = ${OPTARG} ;;
* ) เสียงสะท้อน 'ไม่ถูกต้อง'
ทางออก 1 ;;
เอสแซค
เสร็จแล้ว
พิมพ์ฉ 'ชื่อ: $ชื่อ \n ชื่อบิดา: $ชื่อพ่อ \n ชื่อแม่: $ชื่อแม่ \n '

ดังนั้น คุณสามารถพิมพ์ค่าอาร์กิวเมนต์ที่จัดรูปแบบไปยังเอาต์พุตได้โดยการเรียกใช้สคริปต์ด้านบนในทุบตี

ห่อ

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