The three keywords to loop in Unix/Linux shell are as follows:
until
The statements in the until
loop are executed until the command in the condition becomes true
.
The following is the syntax of the until
loop:
until command
do
Statement(s) to be executed
done
The code below demonstrates the use of the until
loop.
a=5until [ $a -lt 1 ] # a < 1doecho $a # print aa=`expr $a - 1` # a = a - 1done
while
The statements in the while
loop are executed until the command in the condition becomes false
.
The following is the syntax of the while
loop:
while command
do
Statement(s) to be executed
done
The code below demonstrates the use of the while
loop.
a=5while [ $a -gt 0 ] # a > 0doecho $a # print aa=`expr $a - 1` # a = a - 1done
for
The for
loop operates on a list of items. The statements in the for
loop are executed for all items in the list.
The following is the syntax of the for
loop:
for var in word1 word2 ... wordN
do
Statement(s) to be executed
done
The code below demonstrates the use of the for
loop.
for a in 5 4 3 2 1doecho $a # print adone
We use the following keywords to alter the normal flow of a loop in Unix/Linux:
break
We use the break
statement to terminate the loop. It executes the line above break
and ignores all the lines below break
. It then starts execution from the next line after the end of the loop.
The code below demonstrates the use of the break
statement.
for a in 2 5 3 1 9 8 0 7 6 4doif [ $a -eq 0 ] # a == 0thenbreakfiecho $adone
continue
We use the continue
statement to terminate iteration(s) of the loop. It executes the line above continue
and ignores all the lines below continue
. It then starts execution from the start of the next iteration in the loop.
The code below demonstrates the use of the continue
statement.
for a in 1 2 3 4 5 6 7 8 9 10doif [ `expr $a % 2` -eq 0 ] # a % 2 == 0thencontinuefiecho $adone