您的位置:首页 > 运维架构 > Shell

Shell中编写简单计算器

2016-02-29 12:15 288 查看
#!/bin/bash
#2016-2-29
#于虎林
#思路如下
#1,判断有没有输入类容
#2,判断输入的是不是数值
#3,判断输入的运算符
#执行运算符操作
read -t 30 -p "请输入数值1:" num1
read -t 30 -p "请输入数值2:" num2
read -t 30 -p "请输入运算符:" ope
#判断输入的数值是不是为空
if [ -n "$num1" -a -n "$num2" -a -n "$ope" ] #-n 判断字符串是否为非空
then
#判断输入的是不是数字,(测试能不能将values的值替换为空,如果替换为空,说明输入的是数值,如果不行,说明输入的不是数值)
values1=$(echo $num1 |sed 's/[0-9]//g')
values2=$(echo $num2 |sed 's/[0-9]//g')
#判断输入的是不是数值,如果num1和num2的值为空,说明输入的是数值
if [ -z "$values1" -a -z "$values2" ] # -z 判断字符串是否为空
then
if [ "$ope" == '+' ]
then
sum=$(($num1 + $num2))
elif [ "$ope" == '-' ]
then
sum=$(($num1 - $num2))
elif [ "$ope" == '*' ]
then
sum=$(($num1 * $num2))
elif [ "$ope" == '/' ]
then
sum=$(($num1 / $num2))
else
echo "你输入的不是运算符,请输入有效运算符!"
exit 10
fi
echo "$num1$ope$num2=$sum"
else
echo "您输入的不是数字,请输入有效数字!"
exit 11
fi

else
echo "您没有输入数值,请输入有效数值!"
exit 12
fi

#返回10,没有输入正确的运算符
#返回11,输入的不是数字
#返回12,没有输入任何值
注:本文章仅此对自己以后学习参考
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息