Rahul's Blog

Bash Shell Scripting: Loops

July 21, 2020

#!/bin/bash

# 1. While loop
num=1
while [ $num -le 10 ]; do
    echo $num
    num=$((num+1))
done

# 2. continue and break
num1=1
while [ $num1 -le 20 ]; do
    # don't print evens
    if (( ((num1 % 2)) == 0 )); then
        num1=$((num1+1))
        continue
    fi

    # jump out of the loop with break
    if ((num1 >= 15)); then
        break
    fi

    echo $num1
    num1=$((num1+1))
done

# 3. Until loops until the loop is true

num2=1
until [ $num2 -gt 10 ]; do
    echo $num2
    num2=$((num2+1))
done

# 4. use read and a loop to output file info
while read avg rbis hrs; do
    # printf allows to use \n
    printf "Avg: ${avg}\nRBIs: ${rbis}\nHRs: ${hrs}\n"

# pipe data into the while loop
done < loop.txt

# 5. For loop

for (( i=0; i <=10; i=i+1 )); do
    echo $i
done

# 6. Cycle through ranges
for i in {1..10}; do
    echo $i
done
for i in {A..Z}; do
    echo $i
done
for i in {b..q}; do
    echo $i
done

Written by Rahul Jain         
I write code like I make sandwich