Posted on
commands

How to Use Loops in Bash

Author
  • User
    Linux Bash
    Posts by this author
    Posts by this author

Mastering Loops in Bash: A Practical Guide

In the world of shell scripting, Bash (short for Bourne Again SHell) is a powerful tool for automating tasks on Linux and Unix-like systems. One of the most valuable features of Bash scripting is its ability to perform repetitive tasks efficiently using loops. Loops allow you to run the same piece of code over and over again, which can be incredibly useful for automating repetitive tasks, processing files, or handling text data.

In this guide, we’ll explore the different types of loops available in Bash and how you can use them to make your scripts more efficient and powerful.

1. The for Loop

The for loop is one of the most common loop structures in Bash. It is used to iterate over a list of values or a range of numbers.

Syntax:

for variable in list
do
  command(s)
done

Example:

for i in {1..5}
do
  echo "Welcome $i times"
done

This script will print the message “Welcome x times” five times, with x ranging from 1 to 5.

You can also iterate over a list of files or any other items by changing the list after in.

Example:

for file in *.txt
do
  echo "Processing $file"
done

This will print a processing message for each .txt file in the current directory.

2. The while Loop

The while loop enables you to execute a block of commands as long as a certain condition is true.

Syntax:

while [ condition ]
do
  command(s)
done

Example:

counter=1
while [ $counter -le 5 ]
do
  echo "Counting $counter"
  ((counter++))
done

This script will continue looping and printing the counting message until the counter exceeds 5.

3. The until Loop

The until loop works oppositely to the while loop; it executes commands until a condition becomes true.

Syntax:

until [ condition ]
do
  command(s)
done

Example:

counter=1
until [ $counter -gt 5 ]
do
  echo "Counting $counter"
  ((counter++))
done

This loop will function the same as the previous while example, demonstrating how until can be used as an alternative with a different logical approach.

4. Loop Control Commands

Bash provides several commands to control loop execution:

  • break: exits the loop entirely

  • continue: skips the rest of the loop body for the current iteration and moves on to the next iteration

Example using break:

for i in {1..10}
do
  if [ $i -eq 6 ]
  then
    break
  fi
  echo "Number $i"
done

This breaks the loop when i equals 6, so only numbers 1 to 5 are printed.

Example using continue:

for i in {1..10}
do
  if [ $i -eq 6 ]
  then
    continue
  fi
  echo "Number $i"
done

This will skip number 6, printing all other numbers from 1 to 10.

Conclusion

Understanding and utilizing loops in Bash scripting can significantly enhance your ability to automate repetitive tasks and process data more efficiently. Whether you’re a system administrator, a developer, or just a Linux enthusiast, mastering loops will help streamline your scripting skills. Practice writing different types of loops and manipulating their flow to become more proficient in Bash scripting.