请问:错误操作符时(输入2,a,2),为什么计算器脚本进不去第三个判断的else分支(目前至允许加法运算);单引号试过,转义加号也不行,奔溃啦
#!/bin/bash
#计算器脚本
read -t 30 -p "please input num1:" num1
read -t 30 -p "please input opt:" opt
read -t 30 -p "please input num2:" num2
#判断输入的内容是否为空,-z表示是否为空
if [ -z "$num1" -o -z "$num2" -o -z "$opt" ]
then
echo "null input"
exit 10
fi
#判断num1与num2是否为纯数字
#使用sed将数字替换为空
test1=$(echo "$num1" | sed 's/[0-9]//g')
test2=$(echo "$num2" | sed 's/[0-9]//g')
#若test1或test2不为空,则证明num1或num2不是纯数字
if [ -n "$test1" -o -n "$test2" ]
then
echo "wrong num"
exit 11
fi
#这里是第三个判断语句,判断操作符是否有效
if [ "$opt"=="+" ]
then
echo "$num1 $opt $num2 = $(($num1 $opt $num2))"
else
echo "wrong opt"
exit 12
fi