ใน Bash for, while, และ until เป็น Loop Constructs 3 แบบ แม้แต่ละ Loop แตกต่าง Syntax และ Function แต่ Purpose เหมือนกันคือ Iterate Code Block เมื่อ Expression ถูก Evaluate
Until Loop ใช้ Execute Code Block จนกว่า Expression จะ Evaluate เป็น False นี่ตรงข้ามกับ While Loop While Loop รัน Code Block ขณะ Expression เป็น True Until Loop ทำตรงข้าม
until [ expression ] do code block ... done
มาแยก Syntax:
- เริ่ม Loop ด้วย Until Keyword ตามด้วย Expression ใน Single/Double Braces
- Expression ควร Evaluate เป็น False จนกว่าจะเริ่มรัน Code Block
- Code Block จริงวางระหว่าง Do และ Done
ในบทความสั้นนี้ จะเรียนรู้การใช้ Until Loop ใน Shell Scripts ด้วยตัวอย่างต่อไป:
สร้าง Infinite Loop ใน Scripts
สร้าง Infinite Loop ได้ด้วย False Statement เป็น Expression เมื่อจำลอง Infinite Loops ควรใช้ Sleep ให้ Script หน่วงเป็นระยะ
count=0 until false do echo "Counter = $count" ((count++)) sleep 2 done
สร้าง Single Line Statements
สร้าง Single-line Loop Statements ได้ ดูโค้ดด้านล่าง นี่คือ Infinite Loop ตัวแรกแตเป็น Single Line ต้องใช้ Semicolon (;) จบแต่ละ Statement
# until false; do echo "Counter = $count"; ((count++)); sleep 2; done
เปลี่ยน Flow ด้วย Break และ Continue Statements
ใช้ Break และ Continue Statements ภายใน While Loop ได้ (หมายเหตุ: ควรเป็น Until Loop) Break จะออกจาก Loop ส่ง Control ไป Statement ถัดไป Continue จะข้าม Iteration ปัจจุบันเริ่ม Iteration ถัดไป
ใช้ Infinite Loop ตัวอย่างเดิม ตอน Count เท่ากับ 5 Continue จะข้าม Loop Body ที่เหลือ ตอน Count มากกว่าหรือเท่ากับ 10 Loop Break
count=0
until false
do
((count++))
if [[ $count -eq 5 ]]
then
continue
elif [[ $count -ge 10 ]]
then
break
fi
echo "Counter = $count"
done
ขอจบเท่านี้ จะเจอกันอีกกับบทความน่าสนใจเร็วๆ นี้ 'until' แล้วกัน อ่านต่อและสนับสนุนเราต่อไปนะครับ