Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to increment numbers in bash script?

Tags:

bash

shell

I am trying to print odd numbers from 1 - 99, using the script below.

start=1
while [[ $start -le 100 ]]
do 
    echo $start
    start=start+2

done

but instead of getting numbers my output looks like

1
1+2
1+2+2
1+2+2+2
1+2+2+2+2
1+2+2+2+2+2
1+2+2+2+2+2+2
1+2+2+2+2+2+2+2

What did I miss here?

like image 720
Asnim P Ansari Avatar asked Jan 25 '26 03:01

Asnim P Ansari


2 Answers

You have to use Aritmetic Expansion:

Arithmetic expansion provides a powerful tool for performing (integer) arithmetic operations in scripts.

Example:

start=$((start + 2))

The cleanest code I can do to print odd numbers is:

start=1
while [[ $start -le 100 ]]
do
    echo $((start += 2))
done
like image 85
Carlos Avatar answered Jan 27 '26 19:01

Carlos


Jest wrap the start+2 like below

start=$((start+2))

Here is some more details

The link is from This Answer

like image 29
Shmuel Avatar answered Jan 27 '26 18:01

Shmuel