0Pricing
Linux Command Line & Bash Scripting Mastery · บทเรียน

โครงสร้างการวนซ้ำ (for, while)

ทำงานที่ต้องทำซ้ำให้เป็นอัตโนมัติด้วยลูป 'for' และ 'while' โดยวนซ้ำผ่านรายการ ไฟล์ หรือเงื่อนไขต่าง ๆ

โครงสร้างการวนซ้ำ (for, while) เป็นบทเรียน Linux Command Line & Bash Scripting Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Command Line & Bash Scripting Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน

ทำงานอัตโนมัติด้วยลูป

ยินดีต้อนรับ! ในบทเรียนนี้ เราจะเจาะลึกเรื่องลูปในการเขียนสคริปต์ Bash ลูปเป็นเครื่องมือทรงพลังที่ช่วยให้สคริปต์ทำชุดคำสั่งซ้ำได้หลายครั้ง

ลูปมีความสำคัญต่อการทำงานซ้ำ ๆ ให้เป็นอัตโนมัติ การประมวลผลรายการข้อมูล หรือการทำงานจนกว่าเงื่อนไขที่กำหนดจะเป็นจริง เราจะเรียนรู้ลูปหลักสองประเภท ได้แก่ ลูป for และ ลูป while

ลูป 'for': รายการสิ่งของ

ลูป for เหมาะอย่างยิ่งสำหรับวนซ้ำผ่านรายการสิ่งของที่กำหนดไว้ตายตัว รายการนี้อาจเป็นชุดคำ ชื่อไฟล์ ตัวเลข หรือสิ่งใดก็ตามที่คุณกำหนดได้

รูปแบบไวยากรณ์พื้นฐานคือ:

  • for variable in item1 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) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Command Line & Bash Scripting Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “โครงสร้างการวนซ้ำ (for, while)”

ทำงานที่ต้องทำซ้ำให้เป็นอัตโนมัติด้วยลูป 'for' และ 'while' โดยวนซ้ำผ่านรายการ ไฟล์ หรือเงื่อนไขต่าง ๆ คุณปฏิบัติ Linux Command Line & Bash Scripting Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Command Line & Bash Scripting Mastery หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Command Line & Bash Scripting Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “โครงสร้างการวนซ้ำ (for, while)” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Linux Command Line & Bash Scripting Mastery นี้ได้ไหม

ได้ บทเรียน Linux Command Line & Bash Scripting Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. โครงสร้างการวนซ้ำ (for, while)
  2. ฟังก์ชันในสคริปต์ Bash
  3. อาร์กิวเมนต์และตัวเลือกของสคริปต์ ($@, $#, getopts)
  4. คำสั่ง case และการจับคู่รูปแบบ
← กลับไปที่ Linux Command Line & Bash Scripting Mastery