คำสั่ง 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 จะเป็นจริง
for
#!/bin/bash for i in $( ls ); do echo item: $i done
เป็นการนำคำสั่ง ls
ไปเป็นตัวแปรชั่วคราวในการกำหนดขอบเขตให้กับตัวแปร i
ในคำสั่ง for
ในที่นี้จะทำการแสดงผลว่า item: FILENAME ...
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
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
until
#!/bin/bash COUNTER=20 until [ $COUNTER -lt 10 ]; do echo COUNTER $COUNTER let COUNTER-=1 done
จะแสดงตัวเลขตั้งแต่ 20 ลดลงทีละ 1 จนถึง 10