Skip to main content

วิธีการเขียนทับ Bash WHILE-Loops

วิธีเซ็นรับรองบัตรประชาชน (มิถุนายน 2026)

วิธีเซ็นรับรองบัตรประชาชน (มิถุนายน 2026)
Anonim

คุณสามารถเรียกใช้ลำดับของคำสั่งโดยการเขียนลงในไฟล์สคริปต์และเรียกใช้งานได้

ไฟล์สคริปต์เป็นเพียงไฟล์ข้อความโดยปกติจะประกอบด้วยส่วนขยายไฟล์ .SH ซึ่งมีลำดับคำสั่งที่สามารถเรียกใช้จากบรรทัดคำสั่ง (เชลล์)

ในขณะที่ตัวอย่าง Loop

ด้านล่างเป็นตัวอย่างของลูปขณะ เมื่อรันไฟล์สคริปต์นี้จะพิมพ์หมายเลข 1 ถึง 9 บนหน้าจอ คำสั่ง while ช่วยให้คุณมีความยืดหยุ่นในการระบุเงื่อนไขการยกเลิกมากกว่า for-loop

ตัวอย่างเช่นคุณสามารถทำให้สคริปต์ก่อนหน้าเป็นลูปที่ไม่มีขีด จำกัด ได้โดยละเว้นคำสั่งที่เพิ่มขึ้น "((นับ ++))":

คำสั่ง "sleep 1" จะหยุดการทำงานชั่วคราวเป็นเวลา 1 วินาทีในแต่ละการทำซ้ำ ใช้แป้นพิมพ์ลัด Ctrl + C เพื่อยุติกระบวนการ

นอกจากนี้คุณยังสามารถสร้างลูปแบบไม่ จำกัด โดยการใส่เครื่องหมายจุดคู่เป็นเงื่อนไข:

เพื่อที่จะใช้เงื่อนไขหลายในวงขณะที่คุณต้องใช้เครื่องหมายวงเล็บคู่วงเล็บ:

ในสคริปต์นี้ตัวแปร "done" จะเริ่มต้นเป็น 0 และตั้งค่าเป็น 1 เมื่อนับถึง 5 เงื่อนไขลูประบุว่าลูปขณะจะดำเนินต่อไปตราบเท่าที่ "count" น้อยกว่าเก้าและ "done" เท่ากับ เป็นศูนย์ ดังนั้นลูปจึงออกเมื่อจำนวนนั้นเท่ากับ 5

"&&" หมายถึงตรรกะ "และ" และ "||" หมายถึงเหตุผล "หรือ"

สัญกรณ์ทางเลือกสำหรับคำสันธาน "และ" และ "หรือ" ในสภาวะคือ "- a" และ "o" ด้วยวงเล็บเหลี่ยมเดียว เงื่อนไขข้างต้น:

… อาจถูกเขียนใหม่เป็น:

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

บรรทัดแรกกำหนดชื่อไฟล์ที่ป้อนเข้ากับตัวแปร "FILE" บรรทัดที่สองจะบันทึก "อินพุตมาตรฐาน" ในไฟล์อธิบาย "6" (อาจเป็นค่าระหว่าง 3 ถึง 9) "อินพุตมาตรฐาน" สามารถเรียกคืนไปยังตัวบอกไฟล์ "0" ที่ท้ายสคริปต์ได้ (ดูคำสั่ง "exec 0 ในบรรทัดที่ 3 ไฟล์อินพุทถูกกำหนดให้กับ" descriptor "ไฟล์ที่ใช้ สำหรับอินพุตมาตรฐานคำสั่ง "อ่านแล้ว" จะอ่านบรรทัดจากไฟล์ในการวนซ้ำแต่ละครั้งและกำหนดให้กับตัวแปร "line1"

เพื่อที่จะออกจาก while while ก่อนเวลาคุณสามารถใช้คำสั่ง break เช่นนี้ได้:

คำสั่ง break จะข้ามการเรียกใช้โปรแกรมไปยังจุดสิ้นสุดในขณะที่วนซ้ำและรันคำสั่งใด ๆ ต่อไปนี้ ในกรณีนี้ข้อความ "echo Finished"

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

ในกรณีนี้ข้อความ "continue" จะถูกเรียกใช้เมื่อตัวแปร "count" ถึง 5 ซึ่งหมายความว่าคำสั่งที่ตามมา (echo "$ count") จะไม่ถูกเรียกใช้ในการทำซ้ำนี้ (เมื่อค่า "count" เท่ากับ 5)