Linux Shell Scripting Tutorial (LSST) v1.05r3 | ||
Chapter 3: Shells (bash) structured Language Constructs | ||
|
Syntax:
while [ condition ]
do
command1
command2
command3
..
....
done
Loop is executed as long as given condition is true. For e.g.. Above for loop program (shown in last section of for loop) can be written using while loop as:
$cat > nt1 |
Save it and try as
$ chmod 755 nt1
$./nt1 7
Above loop can be explained as follows:
n=$1 | Set the value of command line argument to variable n. (Here it's set to 7 ) |
i=1 | Set variable i to 1 |
while [ $i -le 10 ] | This is our loop condition, here if value of i is less than 10 then, shell execute all statements between do and done |
do | Start loop |
echo "$n * $i = `expr $i \* $n`" | Print multiplication table as 7 * 1 = 7 7 * 2 = 14 .... 7 * 10 = 70, Here each time value of variable n is multiply be i. |
i=`expr $i + 1` | Increment i by 1 and store result to i. ( i.e. i=i+1) Caution: If you ignore (remove) this statement than our loop become infinite loop because value of variable i always remain less than 10 and program will only output 7 * 1 = 7 ... ... E (infinite times) |
done | Loop stops here if i is not less than 10 i.e. condition of loop is not true. Hence |
| ||
for loop | The case Statement |