For loop in bash


Loop is a fundamental concept of any programming language and it is a very useful thing while doing some repetitive task. You can use it to execute a line or block of code repeatedly until a particular situation reached.

Basically, there are three types of loops used in bash scripting i.e. while loop, until loop, and for a loop. In this article, we will explain for loop used in bash along with some examples.

Bash for loop

The bash for loop is used to iterate over a list of items and perform a certain task by executing commands. You can use it to iterate between a range of numbers or on array elements.

The basic syntax of bash for loop is given below.

for item in <list>
do
  <commands>
done

Where instead of the list you can use a range of numbers or arrays.

The following examples show the usage of for loop in bash.

Example 1: Loop on strings

In this example, we will use for loop to iterate over the items of a list that contains strings.

for fruit in Orange Apple Banana Grapes Blueberries
do
   echo "Fruit name: $fruit"
done

This will produce the given output.

Example 2: Loop over a range of number

To iterate over a range of numbers you need to pass the start and end point of the range within curly braces.

The following example shows how to iterate over a range of numbers using for loop.

for i in {1..10}
do
   echo "$i"
done

You can see the output of this code in the given image.

From bash 4, you can specify the value to increase in every iteration of for loop.

For example –

for i in {1..10..2}
do
   echo "$i"
done

This value ofi will be increased by 2 in every iteration. you can see this in the given image.

Example 3: Iterate on array elements

You can use bash for loop to iterate over the elements of an array.

For example –

PHONES=('samsung' 'oppo' 'vivo' 'mi' 'lava' 'iphone')
for phone in "${PHONES[@]}"; do
  echo "Phone name: $phone"
done

Here we iterate over the elements of the PHONE array and printing their name.

C style syntax of bash for loop

The c- style syntax of bash for loop is given below.

for ((initialization; test-expr; step))
do
   <commands>
done

When it is executed first a variable gets initialized with the given value. Next test-expr will be evaluated if it true the for loop executed and once all the statement executed under for loop the initialized value will be increased or decreased based on what is given. When the condition becomes false the control will exit from the loop.

For example –

The above code to print numbers from 1 to 10 can be written as.

# c stype for loop

for ((i = 0 ; i <= 10 ; i++)); do
  echo "$i"
done

Nested bash for loop

Nesting means using one for loop inside another one. The following example shows the nesting of for loop in bash.

# Nested for loop in bash

for i in 1 2 3 4 5  do
    for j in $(seq 1 $i)
    do
        echo  -n "*"
    done
    echo
done
echo

This code will print the following asterisk pattern.

Conclusion

You have learned bash for loop and its usage in this article. Now if you have a query then write us in the comments below.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.