运行时一直提示请输入数字
这样看代码看不到你说的问题,你应该把报错也贴上的。
暂时看见有几个问题:
-n 与“num1” 中间要有空格。
== 两边要有空格
[ xxx ] 方括号里的判断要跟两个方括号之间有空格
除法那行不要带双引号
最后一行只要在两边加双引号就够了,不要写那么多双引号
可能还有漏看的。。。
下面是我写的拆解过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"