What is loop and how to understand it.

What Is Loop And How To Understand It.

Looping Statements in Shell Scripting:

Three keywords to loop in Unix/Linux shell:

 

1.until

The statements in the until loop are executed until the command in the condition becomes true.

Syntax

The following is the syntax of the until loop:

until command
do
     Statement(s) to be executed
done

Code

The code below demonstrates the use of the until loop.

a=5

until [ $a -lt 1 ]   # a < 1
do
   echo $a  # print a
   a=`expr $a - 1`   # a = a - 1
done
Output
5
4
3
2
1

 

2.while

The statements in the while loop are executed until the command in the condition becomes false.

Syntax

The following is the syntax of the while loop:

while command
do
     Statement(s) to be executed
done

Code

The code below demonstrates the use of the while loop.

a=5

while [ $a -gt 0 ]   # a > 0
do
   echo $a  # print a
   a=`expr $a - 1`   # a = a - 1
done
Output
5
4
3
2
1

 

3.for

The for loop operates on a list of items. The statements in the for loop are executed for all items in the list.

Syntax

The following is the syntax of the for loop:

for var in word1 word2 ... wordN
do
   Statement(s) to be executed
done

Code

The code below demonstrates the use of the for loop.

for a in 5 4 3 2 1
do
  echo $a # print a
done
Output
5
4
3
2
1

 

Altering loops

We use the following keywords to alter the normal flow of a loop in Unix/Linux:

Code

The code below demonstrates the use of the break statement.

for a in 2 5 3 1 9 8 0 7 6 4
do
    if [ $a -eq 0 ]  # a == 0
    then
        break
    fi
    echo $a
done
Output
2
5
3
1
9
8

 

4.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.

Code

The code below demonstrates the use of the continue statement.

for a in 1 2 3 4 5 6 7 8 9 10
do
    if [ `expr $a % 2` -eq 0 ]  # a % 2 == 0
    then
        continue
    fi
    echo $a
done
Output
1
3
5
7
9