Wednesday, July 17, 2013

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

#!/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