小镇伊人 发表于 2016-8-11 10:39:00

linux shell 循环嵌套 写的一个脚本出错了

#!/bin/bash

read -p "请输入第一个数字:" -t 30 num1
read -p "请输入第二个数字:" -t 30 num2
read -p "请输入操作符:" -t 30 ope
      if [ -n "$num1" -a -n "$num2" -a -n "$ope" ];then

                test1=$( echo $num1|sed 's///g')
                test2=$( echo $num2|sed 's///g')
                #测试是否是数字
                              echo "$test1"
                #测试是否输入值
                              echo "$test2"
                        if [ -z $test1 -a -z $test2];then
                              echo $test1
                              echo $num1

                              if [ $ope == '+' ];then
                              result=$(($num1+$num2))
                              echo "$num1+$num2=$result"



                              elif [ $ope == '-' ];then
                              result=$(($num1-$num2))
                              echo "$num1-$num2=$result"


                              elif [ $ope == '*' ];then
                              result=$(($num1*$num2))
                              echo "$num1*$num2=$result"


                              elif [ $ope == '/' ];then
                              result=$(($num1/$num2))
                              echo "$num1/$num2=$result"

                              fi
                        fi
      else
                echo "没有输入字符!"
      fi



报错内容为: line 18: [: too many arguments

小镇伊人 发表于 2016-8-11 10:41:26

拜托哪位linux大牛给点关于if嵌套的建议 谢谢啦~~~

seagull1985 发表于 2016-8-11 11:17:21

:(:(:(

seagull1985 发表于 2016-8-11 11:17:29

:(:(:(

小镇伊人 发表于 2016-8-11 11:27:37

已经找到问题所在了,不是if嵌套的问题,这是嵌套的正确格式,操作符$ope变量没加双引号,导致没有识别出输入的操作符,经测试变量处理后有效。:)

小镇伊人 发表于 2016-8-11 11:31:07

seagull1985 发表于 2016-8-11 11:17


谢谢光临哦

小镇伊人 发表于 2016-8-11 11:31:36

谢谢光临哦:)

小镇伊人 发表于 2016-8-11 11:31:44

谢谢光临哦:)
页: [1]
查看完整版本: linux shell 循环嵌套 写的一个脚本出错了