Shell Scripting Tutorials: Looping & Iteration statatement using while

The bash while loop is a control flow statement that allows code or commands to be executed repeatedly based on a given condition.

Most languages have the concept of loops: If we want to repeat a task twenty times, we don’t want to have to type in the code twenty times, with maybe a slight change each time.
As a result, we have for and while loops in the Bourne shell.

Types of Loops in Shell Scripting

Syntax of Shell Scripting

Control Flow of While Loop

Example of While Loop in Shell Script

Boolean Operators When Working With Shell Scripts

Apart from the boolean operators that you’ve seen in other programming languages, including ==, <, >, <=, >=, etc., these are shell script specific operators. The major usage difference is that these operators will only work when numeric values are provided. With string value, the operation will simply fail.

-neChecks if both operands are not equal[ 1 -ne 2 ] is TRUE
eqChecks if both the operands are equal[ 1 -eq 2 ] is FALSE
ltCheck if the left operand is lesser than the right operand[1-lt 2 ] is TRUE
gtCheck if the left operand is greater than the right operand[1-gt 2 ] is FALSE
leCheck if the left operand is less than or equal to the right.[1-le 2 ] is TRUE
geCheck if the left operand is greater than or equal to the right.[1-ge 2 ] is FALSE

Creating a While Loop in Shell Script

A while loop doesn’t have a repetition limit by default. We have to explicitly provide it a condition that at some point during the code execution, will turn to false. Else you’ll have a loop that doesn’t end unless an interrupt signal is sent.

Save the script above by any name with the .sh extension. To run the file, you can either run it with the bash command like bash <filename>.sh or make the file executable using the chmod command. To make the script executable, run chmod +x <filename>.sh and then ./<filename>.sh will allow you to run the script.

Let’s understand the script line by line.

  • i=0 – Here we set the variable $i to 0. Learn more about variables in our previous tutorial
  • while [ $i -le 10 ] – Run the while loop only until the variable $i is lesser than or equal to 10. So this loop will run 11 times including the ZERO-th run.
  • do – Marks the beginning of the while loop in shell scripts
  • echo True – A simple command that will print the word “True” on our terminal
  • ((i++)) – C style variable increments to add 1 to the variable i with every loop. There are various other ways to perform an increment include $i=((i+1)), ((i=i+1)), etc. Feel free to use either one.
  • done – Marks the end of the while loop
  • echo False – This again simply prints out the word False on the screen to indicate that condition has now turned false.

Example of nested While Loop

Rajesh Kumar
Follow me
Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x