Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

เชี่ยวชาญ Bash 'until' Loop: คู่มือขั้นตอนสำหรับ Shell Scripts

ใน 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
เชี่ยวชาญ Bash  until  Loop: คู่มือขั้นตอนสำหรับ Shell Scripts

สร้าง Single Line Statements

สร้าง Single-line Loop Statements ได้ ดูโค้ดด้านล่าง นี่คือ Infinite Loop ตัวแรกแตเป็น Single Line ต้องใช้ Semicolon (;) จบแต่ละ Statement

# until false; do echo "Counter = $count"; ((count++)); sleep 2; done
เชี่ยวชาญ Bash  until  Loop: คู่มือขั้นตอนสำหรับ Shell Scripts

เปลี่ยน 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
เชี่ยวชาญ Bash  until  Loop: คู่มือขั้นตอนสำหรับ Shell Scripts

ขอจบเท่านี้ จะเจอกันอีกกับบทความน่าสนใจเร็วๆ นี้ 'until' แล้วกัน อ่านต่อและสนับสนุนเราต่อไปนะครับ