shell脚本实现算术运算且输入的不能为非数字的值

#!/bin/bash


c=1

while [ ${c} -eq  1 ]
do
echo "请输入第一个数"
read a
echo "请输入第二个数"
read b

if [[ ${b} != *[!0]* ]] && [[ ${a} != *[!0123456789]* ]] && [ -n "${a}"  ] && [ -n "${b}" ]  ;

then
sleep 1
echo "   "
echo "   "
echo "和为:"`echo $(( ${a} + ${b} ))`
echo "差为:"`echo $(( ${a} - ${b} ))`
echo "积为:"`echo $(( ${a} * ${b}))`
echo "   "
sleep 2
echo -e "33[33m除数为0,无法进行除法运算以及取余运算!33[0m"

c=$(( ${c} + 1 ))
elif [[ ${a} != *[!0123456789]* ]] && [[ ${b} != *[!0123456789]* ]] && [ -n "${a}" ] && [ -n "${b}" ] ;

then
sleep 1
echo "  "
echo "  "
echo "和为:"`echo $(( ${a} + ${b} ))`
echo "差为:"`echo $(( ${a} - ${b} ))`
echo "商为:"`echo $(( ${a} / ${b} ))`
echo "积为:"`echo $(( ${a} * ${b}))`
echo "余数为:"`echo  $(( ${a} % ${b}))`

c=$(( ${c} + 1 ))

else

sleep 3

echo "  "

echo -e "33[31m输入错误,请从新输入正确的值!33[0m"

echo "  "
fi

done
原文地址:https://www.cnblogs.com/zhangzhongming/p/6121136.html