7.การวนรอบ โดยใช้คำสั่ง for, while และ until

คำสั่ง for มีลักษณะคล้าย for ในภาษาไพธอน มีรูปแบบเป็น

for VAR in SCOPE; do
    COMMAND
done

คำสั่ง while มีรูปแบบเป็น

while [CONDITION]; do
    COMMAND
done

ถ้าเงื่อนไข CONDITION เป็นจริง ก็จะทำคำสั่ง COMMAND คำสั่ง until รูปแบบตรงกันข้ามกับ while โดยมีรูปแบบเป็น

until [CONDITION]; do
    COMMAND
done

คือจะทำคำสั่ง COMMAND จนกว่าเงื่อนไข CONDITION จะเป็นจริง

7.1 ตัวอย่าง for

#!/bin/bash
for i in $( ls ); do
    echo item: $i
done

เป็นการนำคำสั่ง ls ไปเป็นตัวแปรชั่วคราวในการกำหนดขอบเขตให้กับตัวแปร i ในคำสั่ง for ในที่นี้จะทำการแสดงผลว่า item: FILENAME ...

7.2 ตัวอย่าง for อีกแบบ

#!/bin/bash
for i in `seq 1 10`; do
    echo $i
done

เป็นการนำผลจากคำสั่ง seq 1 10 ไปกำหนดขอบเขตให้กับตัวแปร i ในคำสั่ง for อาจเขียนเลียนแบบตัวอย่าง 7.1 ได้เหมือนกันดังนี้

#!/bin/bash
for i in $( seq 1 10 ); do
    echo $i
done

7.3 ตัวอย่าง while

#!/bin/bash 
COUNTER=0
while [  $COUNTER -lt 10 ]; do
    echo The counter is $COUNTER
    let COUNTER=COUNTER+1 
done

เป็นการแสดงค่าตัวแปร COUNTER ที่เพิ่มขึ้นทีละ 1 จาก 0 ถึง 9 โปรดสังเกตุการใช้ตัวแปรเก็บค่าตัวเลข, การเปรียบเทียบตัวเลขโดยใช้ตัวเปรียบเทียบ -lt (less than) และการกำหนดเพิ่มค่าให้กับตัวแปรแบบตัวเลขโดยใช้คำสั่ง let

7.4 ตัวอย่าง until

#!/bin/bash 
COUNTER=20
until [  $COUNTER -lt 10 ]; do
    echo COUNTER $COUNTER
    let COUNTER-=1
done

จะแสดงตัวเลขตั้งแต่ 20 ลดลงทีละ 1 จนถึง 10