โครงสร้างการวนซ้ำ (for, while)
ทำงานที่ต้องทำซ้ำให้เป็นอัตโนมัติด้วยลูป 'for' และ 'while' โดยวนซ้ำผ่านรายการ ไฟล์ หรือเงื่อนไขต่าง ๆ
โครงสร้างการวนซ้ำ (for, while) เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
ทำงานอัตโนมัติด้วยลูป
ยินดีต้อนรับ! ในบทเรียนนี้ เราจะเจาะลึกเรื่องลูปในการเขียนสคริปต์ Bash ลูปเป็นเครื่องมือทรงพลังที่ช่วยให้สคริปต์ทำชุดคำสั่งซ้ำได้หลายครั้ง
ลูปมีความสำคัญต่อการทำงานซ้ำ ๆ ให้เป็นอัตโนมัติ การประมวลผลรายการข้อมูล หรือการทำงานจนกว่าเงื่อนไขที่กำหนดจะเป็นจริง เราจะเรียนรู้ลูปหลักสองประเภท ได้แก่ ลูป for และ ลูป while
ลูป 'for': รายการสิ่งของ
ลูป for เหมาะอย่างยิ่งสำหรับวนซ้ำผ่านรายการสิ่งของที่กำหนดไว้ตายตัว รายการนี้อาจเป็นชุดคำ ชื่อไฟล์ ตัวเลข หรือสิ่งใดก็ตามที่คุณกำหนดได้
รูปแบบไวยากรณ์พื้นฐานคือ:
forvariableinitem1 item2 ...; do- commands to repeat
done
แต่ละรายการจะถูกกำหนดให้กับ variable และคำสั่งจะทำงานหนึ่งครั้งสำหรับแต่ละรายการ
ตัวอย่าง: การวนซ้ำในรายการ
มาดูการทำงานของลูป for โดยวนซ้ำผ่านรายการผลไม้กัน ลองเรียกใช้ตัวอย่างนี้เพื่อดูว่าผลไม้แต่ละรายการได้รับการประมวลผลอย่างไร:
#!/bin/bash
echo "My favorite fruits:"
for fruit in Apple Banana Orange;
do
echo "$fruit is delicious!"
doneลูป 'for': ลำดับตัวเลข
ลูป for ยังสามารถสร้างและวนซ้ำผ่านลำดับตัวเลขได้อย่างง่ายดาย ซึ่งมีประโยชน์อย่างมากสำหรับงานที่ต้องนับจำนวนหรือประมวลผลรายการตามดัชนี
คุณสามารถใช้ การขยายวงเล็บปีกกา {start..end} เพื่อสร้างลำดับตัวเลขได้:
for i in {1..5}; do ... done
อีกทางเลือกหนึ่งคือคำสั่ง seq ซึ่งสามารถสร้างลำดับที่มีตัวเลือกเพิ่มเติมได้ เช่น การกำหนดขั้น:
for i in $(seq 1 2 10); do ... done
ตัวอย่าง: การนับด้วย 'for'
ต่อไปนี้คือตัวอย่างการใช้การขยายวงเล็บปีกกาเพื่อนับตั้งแต่ 1 ถึง 3 ซึ่งเป็นรูปแบบที่ใช้กันทั่วไปสำหรับลูปตัวเลขอย่างง่าย
#!/bin/bash
echo "Counting up:"
for i in {1..3};
do
echo "Number: $i"
doneลูป 'while': การทำซ้ำตามเงื่อนไข
ลูป while จะเรียกใช้ชุดคำสั่งซ้ำ ๆ ตราบใดที่เงื่อนไขที่ระบุยังคงเป็นจริง ลูปนี้เหมาะอย่างยิ่งเมื่อคุณไม่ทราบล่วงหน้าว่าต้องวนซ้ำกี่ครั้ง
ไวยากรณ์พื้นฐานมีดังนี้:
while[ condition ]; do- คำสั่งที่จะทำซ้ำ
done
ระบบจะประเมินเงื่อนไขก่อนการวนซ้ำแต่ละครั้ง หากเป็นจริง คำสั่งจะทำงาน แต่หากเป็นเท็จ ลูปจะสิ้นสุดลง
ตัวอย่าง: ตัวนับ 'while' อย่างง่าย
ตัวอย่างนี้สาธิตลูป while ที่นับตั้งแต่ 1 ถึง 3 โปรดสังเกตว่าตัวแปร count ถูกเพิ่มค่าภายในลูป เพื่อทำให้เงื่อนไขเป็นเท็จในท้ายที่สุด
#!/bin/bash
count=1
echo "Counting with while loop:"
while [ $count -le 3 ];
do
echo "Current count: $count"
count=$((count + 1))
doneลูป 'while': การอ่านไฟล์ทีละบรรทัด
การใช้งานลูป while ที่พบได้บ่อยและมีประสิทธิภาพมาก คือการอ่านและประมวลผลไฟล์ทีละบรรทัด ซึ่งจำเป็นอย่างยิ่งสำหรับการแยกวิเคราะห์ไฟล์บันทึกการทำงาน ไฟล์การกำหนดค่า หรือข้อมูลข้อความใด ๆ
รูปแบบมักเป็นดังนี้:
while IFS= read -r line; do- คำสั่งสำหรับประมวลผล $line
done < filename.txt
IFS= read -r เป็นวิธีอ่านบรรทัดที่รัดกุม ช่วยป้องกันปัญหาเกี่ยวกับช่องว่างและเครื่องหมายแบ็กสแลช
ตัวอย่าง: การประมวลผลไฟล์
มาสร้างไฟล์ชั่วคราว แล้วใช้ลูป while เพื่ออ่านและแสดงเนื้อหาทีละบรรทัดกัน ตัวอย่างนี้แสดงการประยุกต์ใช้การประมวลผลไฟล์ในทางปฏิบัติ
#!/bin/bash
# Create a temporary file for demonstration
echo "First line of data" > temp_data.txt
echo "Second line of data" >> temp_data.txt
echo "Third line of data" >> temp_data.txt
echo "\nReading from temp_data.txt:"
while IFS= read -r line;
do
echo "Processed: $line"
done < temp_data.txt
# Clean up the temporary file
rm temp_data.txtการเลือกประเภทลูป
คุณได้เรียนรู้ทั้งลูป for และ while แล้ว แต่ละแบบมีจุดเด่นแตกต่างกันไปตามงานที่ต้องทำ
ลองพิจารณาสถานการณ์ต่อไปนี้: คุณจำเป็นต้องประมวลผลชื่อไฟล์แต่ละรายการในไดเรกทอรีที่ระบุ
ทบทวน: ลูปสำหรับการทำงานอัตโนมัติ
คุณได้สำรวจโครงสร้างลูปของ Bash เรียบร้อยแล้ว!
- ลูป
forเหมาะสำหรับการวนซ้ำผ่านรายการที่ทราบแน่ชัดและมีจำนวนจำกัด หรือลำดับตัวเลข - ลูป
whileเหมาะที่สุดเมื่อต้องการทำคำสั่งซ้ำตราบใดที่เงื่อนไขหนึ่งยังคงเป็นจริง โดยมักใช้สำหรับการนับหรือการอ่านไฟล์ทีละบรรทัด
การทำความเข้าใจลูปเหล่านี้เป็นพื้นฐานสำคัญสำหรับการเขียนสคริปต์ Bash ที่มีประสิทธิภาพและทำงานอัตโนมัติ ฝึกฝนต่อไปเพื่อพัฒนาทักษะการเขียนสคริปต์ของคุณ!
คำถามที่พบบ่อย
บทเรียน “โครงสร้างการวนซ้ำ (for, while)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “โครงสร้างการวนซ้ำ (for, while)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “โครงสร้างการวนซ้ำ (for, while)”
ทำงานที่ต้องทำซ้ำให้เป็นอัตโนมัติด้วยลูป 'for' และ 'while' โดยวนซ้ำผ่านรายการ ไฟล์ หรือเงื่อนไขต่าง ๆ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “โครงสร้างการวนซ้ำ (for, while)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างการวนซ้ำ (for, while)
- ฟังก์ชันในสคริปต์ Bash
- อาร์กิวเมนต์และตัวเลือกของสคริปต์ ($@, $#, getopts)
- คำสั่ง case และการจับคู่รูปแบบ