Loops in bash shell scripting


A loop in bash is used to execute a line or block of code repeatedly until a particular situation reached. Loop is a fundamental concept of programming and a very useful thing while doing some repetitive task.

For example, You can print numbers from 1 to 10 by using a print statement 10 times printing numbers from 1 to 10, or use a loop with a condition to run it 10 times and print the numbers.

In this article, we will discuss the different types of loops used in bash scripting along with some examples.

Types of loops in bash

Bash has three basic loop constructs these are given below.

  • while loop
  • for loop
  • until loop

The bash select is another loop construct used especially to create a menu of numbered items, a user can select an item from the created menu.

Bash while loop

It is one of the easiest and most basic types of loop in bash. It executes a line or block of code repeatedly until a certain condition is satisfied.

The syntax of the of while loop in bash is given below.

while [ test-expression ]
do
<commands>
done

The given example shows the use of bash while loop.

#!/bin/bash

#Initialization of variable
count=1
# Check if count is less than or equal to 10
while [ $count -le 10 ]
do
#Print the value of count
  echo $count
# Increment the value of count
  ((count++))
done

Let’s say this code is saved in the ex1.sh file. Use the following command to execute it.

bash ex1.sh

This will print the numbers from 1 to 10.

Bash for loop

This is another type of loop that is used to iterate over a list of items and perform a certain task by executing commands.

The bash for loop syntax is given below.

for item in <list>
do
  <commands>
done

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

Example 1:

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

You will see the given output on the execution of this code.

Example 2:

To iterate over a range of numbers you need to pass the range. You can see this in the given example.

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

When you execute this command. The numbers from 1 to 10 will get printed. You can see the output in the given image.

Bash until loop

The until loop is very similar to the while loop which is explained above. The difference is that it will execute the commands within it until the test becomes true.

The syntax of bash until loop is given below.

until [ test-expression ]
do
   <commands>
done

The following example shows the use of until loop in bash.

#!/bin/bash
# Intialization of counter variable
count=1
# Condition check
until [ $count -gt 10 ]
do
# Print the value of count variable
   echo $count
#Increment the counter variable
   ((count++))
done

On execution of this script, you will see the given output.

You can see the difference between while and until loops while checking the condition.

Bash select

The select construct is used in bash scripting it provides a prompt and a menu of numbered items, a user can select from these options. If the user enters a valid option it executes the code written for that option. If the user presses enter without choosing an option then it will display the menu again. The select command is generally used with the case command.

The syntax of bash select is given below.

select item in <list>
do
   <commands>
done

For example –

#! /bin/bash
# Author : Lalit Kumar
# Copyright(c) : cyanogenmods.org

PS3="Enter a number: "
select phone in samsung mi oppo vivo iphone lava asus
do
   echo "You selected: $phone"
   echo "And you selected the number: $REPLY"
done

On executing this code you will see the given output.

Conclusion

I hope now you understand how to use different loops in bash. If you have any 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.