不算好的方法:
#!/bin/sh
echo "input num1:"
read a
echo "input num2:"
read b
echo "input operator:"
read o
case $o in
+)
awk 'BEGIN{printf "\t" "'$a'+'$b'=%.2f\n",'$a'+'$b'}'
#result=$((a+b))
;;
-)
awk 'BEGIN{printf "\t" "'$a'-'$b' =%.2f\n", '$a'-'$b'}'
#result=$((a-b))
;;
/)if [ $b -eq 0 ]
then
echo "错误提示:除数不能为零!!!"
else
awk 'BEGIN{printf "\t" "'$a'/'$b' =%.2f\n", '$a'/'$b'}'
fi
;;
\*)
awk 'BEGIN{printf "\t" "'$a'*'$b' =%.2f\n", '$a'*'$b'}'
#result=$((a*b))
;;
*)
echo "输入格式错误"
esac
较好的方法:
#!/bin/sh
ps3="select your will exec Menu:"
select i in "运算"
do
case $i in
运算)
echo "请输入运算符1:\c"
read a
echo "\n"
echo "请输入运算符2:\c"
read b
echo "\n"
ac=`echo $a|awk '{if($1 !~/[a-zA-Z]/) print}'`
bc=`echo $b|awk '{if($1 !~/[a-zA-Z]/) print}'`
#ccc=`echo $a $b|awk '{if("$a" ~/[0-9]/ || "$b" ~/[0-9]/) print}'`
#echo $a $b|awk '{if("$a" !~/[0-9]/ && "$b" !~/[0-9]/) print }'
if [ "$ac" = "$a" -a "$bc" = "$b" ]
then
#echo "运算符只能为数字..."
#break
#else
echo "提示:请选择下列序号进行运算,退出请输入错误格式!\n"
select i in "+" "-" "*" "/"
do
case $i in
+)
awk 'BEGIN {printf "\t" "'$a'+'$b' =%.2f\n", '$a'+'$b'}'
;;
-)
awk 'BEGIN{printf "\t" "'$a'-'$b' =%.2f\n", '$a'-'$b'}'
;;
/)if [ $b -eq 0 ]
then
echo "错误提示:除数不能为零!!!a\n"
else
awk 'BEGIN{printf "\t" "'$a'/'$b' =%.2f\n", '$a'/'$b'}'
fi
;;
\*)
awk 'BEGIN{printf "\t" "'$a'*'$b' =%.2f\n", '$a'*'$b'}'
;;
*)
echo "提示:输入1继续运算,否则退出。。。"
break
;;
esac
done
else
echo "提示:运算符错误,请输入数字\n"
continue
fi
;;
*)
echo "-----------------------------退出---------------------------"
exit 0
;;
esac
done
可参考的实现方法3:
#!/bin/sh
case $2 in
+)
awk 'BEGIN{printf "\t" "'$1'+'$3'=%.2f\n",'$1'+'$3'}'
;;
esac
注:这个方法就是在执行的时候输入参数