为了账号安全,请及时绑定邮箱和手机立即绑定

请问:错误操作符时(输入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


正在回答

1 回答

好吧,我知错了 ==两边也要用空格

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问:错误操作符时(输入2,a,2),为什么计算器脚本进不去第三个判断的else分支(目前至允许加法运算);单引号试过,转义加号也不行,奔溃啦

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信