#!/bin/bash
read -t 30 -p "请输入一个数字:" num1
read -t 30 -p "请输入一个数字:" num2
read -t 30 -p "请输入一个运算符:" ope
#通过read命令接受要输入的参数
if [ -n "$num1" -a -n "$num2" -a -n "$ope" ]
#第一层判断是否有值
then
test1=$(echo $num1 | sed 's/[0-9]//g')
test2=$(echo $num2 | sed 's/[0-9]//g')
#定义变量test1和test2的值。把变量test值替换为空。如果能替换
#则为数字
if [ -z "$test1" -a -z "$test2" ]
#判断变量test1 2是否为空,为空证明 num1 num2是数字
then
if [ -n -o "$ope" == '+' -o "$ope" == '-' -o "$ope" == '*' -o "$ope" == '/' -o ]
then
res=$(($num1$ope$num2))
else
#!/bin/bash
read -t 30 -p "请输入一个数字:" num1
read -t 30 -p "请输入一个数字:" num2
read -t 30 -p "请输入一个运算符:" ope
#通过read命令接受要输入的参数
if [ -n "$num1" -a -n "$num2" -a -n "$ope" ]
#第一层判断是否有值
then
test1=$(echo $num1 | sed 's/[0-9]//g')
test2=$(echo $num2 | sed 's/[0-9]//g')
#定义变量test1和test2的值。把变量test值替换为空。如果能替换
#则为数字
if [ -z "$test1" -a -z "$test2" ]
#判断变量test1 2是否为空,为空证明 num1 num2是数字
then
if [ -n -o "$ope" == '+' -o "$ope" == '-' -o "$ope" == '*' -o "$ope" == '/' -o ]
then
res=$(($num1$ope$num2))
else
echo '输入的运算符有误'
exit 3
fi
else
echo '输入的非数字,请重新输入'
exit 2
fi
else
echo '未输入,请重新输入'
exit 1
fi
echo " $num1 $ope $num2 = $res "
知道了,第一个判断条件里有写-n“$ope”