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

正在回答

1 回答

这样看代码看不到你说的问题,你应该把报错也贴上的。

暂时看见有几个问题:

  1. -n 与“num1” 中间要有空格。

  2. == 两边要有空格

  3. [ xxx ]  方括号里的判断要跟两个方括号之间有空格

  4. 除法那行不要带双引号

  5. 最后一行只要在两边加双引号就够了,不要写那么多双引号

可能还有漏看的。。。

下面是我写的拆解过if结构的

#!/bin/bash
# 例子:计算器
read -t 30 -p "input num1:" num1
read -t 30 -p "input num2:" num2
read -t 30 -p "input ope(+-*/):" ope
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')
    if [ -z "$test1" -a -z "$test2" ]        
    then
        echo "check ok "        
    else                
        echo "error input"                
        exit 10        
    fi
else        
    echo "num1,num2,ope must be not null"        
    exit 11
fi

# 开始计算
if [ "$ope" == "+" ]
then        
    res=$(($num1+$num2))
elif [ "$ope" == "-" ]
then        
    res=$(($num1-$num2))
elif [ "$ope" == "*" ]
then        
    res=$(($num1*$num2))
elif [ "$ope" == "/" ]
then        
    res=$(($num1/$num2))
else        
    echo "ope error"
fi
echo "res:$res"


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

举报

0/150
提交
取消

请问这个是哪里有错误

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