Sunday, February 20, 2011

Shell Script: Sum of squares

#!/bin/bash
#######################################################
# File Name : sy_1_g
# Author: : Suresh Yadagiri
# Date : July 27,2010
# Descriptiom :
# This script takes integer numbers as
# the command line arguments and displays
# a list of their squares amd the sum
# of numbers in the list of squares
#####################################################

printusageinfo(){
echo "Usage: $0 number-list"
exit 1
}
function is_integer() {
printf "%d" $1 > /dev/null 2>&1
return $?
}

if [ $# = 0 ]
then
echo "Usage: $0 number-list"
exit 1
fi

index=0 #Running sum initialized to zero
sumofsquares=0 #sum of squares
count=0 #To count number of arguments

while [ $# != 0 ]
do
if is_integer $1; then
# "$1 is an integer"
numbers[$index]=`expr $1`
let square=`expr $1*$1`
squares[$index]=$square
sumofsquares=`expr $sumofsquares + $square`
count=`expr $count + 1`
shift # Shift the counted number out
index=`expr $index + 1`
else
echo "$1 is not an integer"
printusageinfo
fi

done

#displaying numbers and their squares
echo "Number Square"
index=0
while [ $index -lt $count ]
do
echo " ${numbers[$index]} ${squares[$index]}"
index=`expr $index + 1`

done

#displaying sum of squares
echo "The sum of squres is $sumofsquares ."
exit 0

No comments:

Post a Comment