Reputation: 31
Im trying to use nested for loop in shell script to get output like below:
i=1 j=1 iteration 1
i=2 j=2 iteration 2
i=3 j=1 iteration 3
i=4 j=2 iteration 4
i=5 j=1 iteration 5
i=6 j=2 iteration 6
Something like
for (( i=1; i <= 6;i++ ))
do
for ((j=1;j<2;j++))
do
echo i=$i;echo j=$j;echo iteration $i
...
done
done
Upvotes: 2
Views: 9503
Reputation: 21522
In Bash/Zsh/Ksh93 (at least):
let iter=0
for (( i=1; i <= 6; ))
do
for (( j=1; j<=2; j++, i++ ))
do
printf "i=%d j=%d iteration %d\n" $i $j $(( ++iter ))
done
done
Output
i=1 j=1 iteration 1
i=2 j=2 iteration 2
i=3 j=1 iteration 3
i=4 j=2 iteration 4
i=5 j=1 iteration 5
i=6 j=2 iteration 6
And the following should work in the standard command language as well:
iter=0
i=0
while (( i <= 6 ))
do
j=0
while (( ++j <= 2 && ++i <= 6 ))
do
printf "i=%d j=%d iteration %d\n" $i $j $(( ++iter ))
done
done
Upvotes: 2
Reputation: 3146
#!/usr/bin/env bash
for i in `seq 1 6`; do
if [[ $((i%2)) -eq 1 ]]; then
echo "i=$i j=1 iteration $i"
else
echo "i=$i j=2 iteration $i"
fi
done
Upvotes: 0