51Testing软件测试论坛
标题:
linux shell 循环嵌套 写的一个脚本出错了
[打印本页]
作者:
小镇伊人
时间:
2016-8-11 10:39
标题:
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/[0-9]//g')
test2=$( echo $num2|sed 's/[0-9]//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
拜托哪位linux大牛给点关于if嵌套的建议 谢谢啦~~~
作者:
seagull1985
时间:
2016-8-11 11:17
作者:
seagull1985
时间:
2016-8-11 11:17
作者:
小镇伊人
时间:
2016-8-11 11:27
已经找到问题所在了,不是if嵌套的问题,这是嵌套的正确格式,操作符$ope变量没加双引号,导致没有识别出输入的操作符,经测试变量处理后有效。
作者:
小镇伊人
时间:
2016-8-11 11:31
seagull1985 发表于 2016-8-11 11:17
谢谢光临哦
作者:
小镇伊人
时间:
2016-8-11 11:31
谢谢光临哦
作者:
小镇伊人
时间:
2016-8-11 11:31
谢谢光临哦
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2