Folks,
I have a simple script, the calcualtions done inside a while loop or lost outside the loop. Here is the script.
Code:
#! /bin/ksh
vmstat 1 6 | sed '1,4d' | while read a b c d e f g h i j k l m n o p junk
do
echo "CNT is $cnt"
if [[ $cnt -le 3 ]]; then
echo "in loop"
let sum1=$sum1+$a
let sum2=$sum2+$b
let sum3=$sum3+$c
let sum4=$sum4+$d
echo "###inside if loop values are sum1=${sum1} sum2=${sum2} sume3=${sum3} sum4=${sum4}###"
fi
let cnt=$cnt+1
echo "###outside if loop values are sum1=${sum1} sum2=${sum2} sume3=${sum3} sum4=${sum4}###"
done
echo "###outside while loop values are sum1=${sum1} sum2=${sum2} sume3=${sum3} sum4=${sum4}###"
The output:/tmp/test1
Code:
CNT is
in loop
###inside if loop values are sum1=0 sum2=0 sume3=0 sum4=10129064###
###outside if loop values are sum1=0 sum2=0 sume3=0 sum4=10129064###
CNT is 1
in loop
###inside if loop values are sum1=0 sum2=0 sume3=0 sum4=20258128###
###outside if loop values are sum1=0 sum2=0 sume3=0 sum4=20258128###
CNT is 2
in loop
###inside if loop values are sum1=0 sum2=0 sume3=0 sum4=30387160###
###outside if loop values are sum1=0 sum2=0 sume3=0 sum4=30387160###
CNT is 3
in loop
###inside if loop values are sum1=0 sum2=1 sume3=0 sum4=40516192###
###outside if loop values are sum1=0 sum2=1 sume3=0 sum4=40516192###
###outside while loop values are sum1= sum2= sume3= sum4=###
As you can sum4 is NULL outside the loop. The same script works in AIX. Can someone please let me know, what is wrong here? I tried both ksh and bash and results are same.
Thank you