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.
|-ne||Checks if both operands are not equal||[ 1 -ne 2 ] is TRUE|
|–eq||Checks if both the operands are equal||[ 1 -eq 2 ] is FALSE|
|–lt||Check if the left operand is lesser than the right operand||[1-lt 2 ] is TRUE|
|–gt||Check if the left operand is greater than the right operand||[1-gt 2 ] is FALSE|
|–le||Check if the left operand is less than or equal to the right.||[1-le 2 ] is TRUE|
|–ge||Check 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
- Checklist of Disaster Recovery Plan in Kubernetes (EKS) for GitLab - February 24, 2023
- Kubernetes: Pull an Image from a Private Registry using Yaml and Helm File - February 24, 2023
- Jenkins Pipeline code for Sending an email on Build Failure - February 24, 2023