Linux Bash Shell provides the For Loop in order to iterate over the given array, list, string, etc. For loops are very useful for iterative operations and heavily used in Linux bash shells. In this tutorial, we examine different ways and examples to use for loops in the Bash shell.
for Loop Syntax
The bash for loop has 3 different syntaxes. The 3 syntaxes of the for loop are like below.
for VARIABLE in 1 2 3 4 5 .. N
do
   FOR_LOOP_BODY
done- VARIABLE is the current value.
- FOR_LOOP_BODY is a single or more lines that is executed every iteration.
for VARIABLE in FILE1 FILE2 ... FILEN
do
   FOR_LOOP_BODY
done- VARIABLE is the current value.
- FOR_LOOP_BODY is a single or more lines that is executed every iteration.
for OUTPUT in $(COMMAND)
do
   FOR_LOOP_BODY
done- OUTPUT is the $(COMMAND) output which can be used inside the FOR_LOOP_BODY
- $(COMMAND) is executed one time and its output is iterated multiple times.
- FOR_LOOP_BODY is executed in every iteration of the for loop.
For Loop In Number List
A number list can be used with the for loop. The numbers are provided to the for loop by separating them with spaces. The current number is set  $i in every iteration. The current variable is printed in the for loop value.
#!/bin/bash
for i in 1 2 3 4 5 6 7 8 9
do
   echo "Current variable is $i"
doneCurrent variable is 1 Current variable is 2 Current variable is 3 Current variable is 4 Current variable is 5 Current variable is 6 Current variable is 7 Current variable is 8 Current variable is 9
For Loop with Number Range
The number range can be used with a bash script for loop. In the following example, we define a number range with { .. } syntax. The start number is 1 and the end number is 9 in this example.
#!/bin/bash
for i in {1..9}
do
   echo "Current variable is $i"
doneFor Loop with Start, End, Increment
Another bash script for loop syntax and usage is to specify the range with increment value. In the following bash script, we create a for loop which uses the number list with increment value 2.
#!/bin/bash
for i in {0..20..2}
do 
   echo "Current variable is $i"
doneFor Loop with Seq (Sequence) Command
Linux bash provides the seq command which can be created number sequences easily. In the following example, we start a sequence from 0 and increment it 2 by 2 until reaching 20. The sequence is iterated with the bash for loop like below.
#!/bin/bash
for i in $(seq 0 2 20)
do
   echo "Current variable is $i"
doneInfinite For Loop
Bash infinite for loop can be easily created by setting 3 parameters empty like below. This bash for loop is treated unless the process exit with a kill signal or processes interrupts.
#!/bin/bash
for (( ; ; ))
do
   echo "Guess my age:"
   read myage
doneExit For Loop
The exit statement can be used to exit from a bahs for loop. Just run the exit statement where you want to exit from the bash for loop.
#!/bin/bash
for (( ; ; ))
do
   echo "Guess my age:"
   read myage
   exit
doneFor Loop with Array Elements
The bash for loop can be used to iterate over array elements. In the following example, we create a bash array names and iterate over every element by using a bash script for loop like below.
#!/bin/bash
NAMES=('ismail' 'ahmet' 'ali' 'elif')
 
for name in "${NAMES[@]}"
do
   echo $name
doneismail ahmet ali elif
