Do While Bash

Shell Programming

The do while loop is a powerful construct in the Bash scripting language that allows you to repeatedly execute a block of code as long as a certain condition is true. As a passionate Bash scripter, I have found the do while loop to be an invaluable tool in my programming arsenal. In this article, I will dive deep into the details of the do while loop in Bash and share my personal insights and experiences with this construct.

Understanding the Syntax

Before we delve into the intricacies of the do while loop, let’s first take a look at its syntax:

    # code to be executed
done while condition

The do while loop starts with the keyword do, followed by the block of code that needs to be executed repeatedly. The loop is terminated by the keyword done. The condition is evaluated after executing the code block, and if it evaluates to true, the loop will continue executing. If it evaluates to false, the loop will exit.

Benefits of the do while Loop

The do while loop has several advantages over other loop structures, such as the while loop or the for loop. One of the main benefits is that the code block is always executed at least once, regardless of the initial condition. This can be particularly useful when you want to ensure that a certain piece of code is executed before checking the condition.

Another advantage of the do while loop is that it allows for more flexibility in controlling the loop execution. By placing the condition at the end of the loop, you have the ability to change the condition within the loop itself. This can be helpful in scenarios where the condition depends on the outcome of the code block.

Examples of Using the do while Loop

To illustrate the power of the do while loop, let’s consider a practical example. Imagine you’re writing a script that prompts the user for input and continues to do so until a valid input is provided. Here’s how you could accomplish this using a do while loop:


while ! $valid_input
    echo "Please enter a number:"
    read input
    if [[ $input =~ ^[0-9]+$ ]]; then
        echo "Invalid input. Please try again."

In this example, the loop will continue to prompt the user for input until a valid number is provided. The condition ! $valid_input ensures that the loop will continue as long as the variable valid_input is false. Once a valid input is received, the variable is set to true, and the loop will exit.


The do while loop is a valuable tool in Bash scripting, allowing you to repeatedly execute a block of code based on a condition. Its unique syntax and flexibility make it a powerful construct to have in your programming arsenal. I have personally found the do while loop to be incredibly useful in various scripting scenarios. I hope this article has provided you with a deeper understanding of the do while loop and its benefits in Bash scripting.