想问一个关于number和string的问题噢^-^

JavaGG 发布于 2009/05/06 11:11
阅读 196
收藏 0

第一次来噢,菜鸟拉,请大家多多关照,CCCCCCC
我写了这样一个SHELL SCRIPT,但是当运行的时候,输入number没问题,但是当输入字母的时候会出现错误,我不知道如何在里面定义"如果输入任何字母的时候会出现ERROR MESSAGE",谁能教教我呀,^o^
我的SCRIPT如下噢 😉 

clear


echo "1. User details"
echo "2. Average & Final Grade"
echo "3. Int Average, Largest/Smallest Int"
echo "**->>   Press F or f to exit   <<-**"
echo 
echo
echo "Please enter your choice."
read choice

case $choice in 
"1") echo
echo "The user ID is : `whoami`"
echo "Today is       : `date`"
echo "`whoami` is now working in `pwd`"
echo
echo "**->>  Press any key to go back to main menu  <<-**"
echo "**->>          Press F or f to exit           <<-**"
read key
bash Grade.sh
        ;;

"2") echo
echo "Please enter the first mark."
read first
while [ $first -lt 0 -o $first -gt 100 ]
do
echo "Mark must be between 0 to 100. Please enter the correct mark."
read first
done

echo "Please enter the second mark."
read second
while [ $second -lt 0 -o $second -gt 100 ]
do
echo "Mark must be between 0 to 100. Please enter the correct mark."
read second
done

echo "Please enter the third mark."
read third
while [ $third -lt 0 -o $third -gt 100 ]
do
echo "Mark must be between 0 to 100. Please enter the correct mark."
read third
done

total=`expr $first + $second + $third`
average=`expr $total / 3`
if [ $average -gt 84 ]
then
grade="High Distinction"
elif [ $average -gt 74 ]
then 
grade="Distinction"
elif [ $average -gt 64 ]
then
grade="Credit"
elif [ $average -gt 49 ]
then
grade="Pass"
else
grade="Fail"
fi
echo "Average Mark: $average"
echo "       Grade: $grade"
echo
echo "**->>  Press any key to go back to main menu  <<-**"
echo "**->>          Press F or f to exit           <<-**"
read key
bash Grade.sh
;;

"3") echo
echo "Please enter any number."
read number
total=0
count=0
large=$number
small=$number
while [ $number != 0 ]
do
total=`expr $total + $number`
count=`expr $count + 1` 
if [ $large -lt $number ]
then
large=$number
elif [ $small -gt $number ]
then
small=$number
fi
echo "Please enter another number."
echo "Enter 0 (zero) to view result."
read number
done

average=`expr $total / $count`
  echo "Average: $average"
echo "The largest number is $large ."
echo "The smallest number is $small ."
echo
echo "**->>  Press any key to go back to main menu  <<-**"
echo "**->>          Press F or f to exit           <<-**"
read key
bash Grade.sh
;;


"F"|"f")  echo
  echo "Are you sure want to exit? [Y/N]"
  read want
  if [ $want == "Y" -o $want == "y" ]
  then
exit
  elif [ $want == "N" -o $want == "n" ]
  then
clear
bash Grade.sh
  fi
  ;;  
esac



加载中
返回顶部
顶部