#!/bin/bash
function getnum ()
{
# Sets the variable num to an integer number
# prompt user for a number
read -p "Input a number : " num
# check that it is only an integer
# Until a good number given or q typed, keep asking.
until echo "$num" | grep "^[0-9][0-9]*$" > /dev/null 2>&1
do
# if q entered, user Signaling quit.
if [ "$num" = 'q' ]
then
return 1
break
fi
# ask again
echo "Bad number"
read -p "Input a number : " num
done
}
# Loop is endless and must be exited from by an
# internal action.
while [ 1 = 1 ]
do
# get 1st input, if q, then exit program
getnum
num1=$num
if [ "$num1" = 'q' ]
then
exit
fi
# get 2nd input, if q, then exit program
getnum
num2=$num
if [ "$num2" = 'q' ]
then
exit
fi
# if either number > 1000, skip calculation and re-prompt
if [ "$num1" -gt 1000 -o "$num2" -gt 1000 ]
then
echo "User smaller values"
continue
fi
# sum numbers and display
total=$( expr $num1 + $num2 )
echo "$num1 + $num2 = $total"
done
|