为什么不进入条件语句啊


#!/bin/bash
count=0
result=0
  read -p "input a number:" num
  if [ $num -gt 50 -r $sum -lt 40 ]; then
      until [ $num -lt 50 -a $sum -gt 40 ]
      do 
        read -p "input a number again:" num
      done
  fi
     
      
  declare -i count=$count+1
 # count=$count+1
#echo $count
#echo $result
  declare -i result
  result=$result+$num

img

修改后代码:


#!/bin/bash
count=0
result=0
read -p "input a number:" num
if [ $num -gt 50 -o $num -lt 40 ]; then 
    until [ $num -lt 50 -a $num -gt 40 ]
     do
        read -p "input a number again:" num
     done
fi
declare -i count=$count+1
# count=$count+1
#echo $count
#echo $result
declare -i result
result=$result+$num

这段代码的问题是在于,if语句的条件判断语句中使用了"-r"选项,但是在bash中并没有"-r"选项。

另外"declare -i"用于声明变量为整型,但是这里的count变量已经在之前声明过了,所以可以将"declare -i"删除。

修改后的代码如下:

#!/bin/bash
count=0
result=0
read -p "input a number:" num
if [ $num -gt 50 ] || [ $sum -lt 40 ]; then
    until [ $num -lt 50 ] && [ $sum -gt 40 ]
    do 
      read -p "input a number again:" num
    done
fi
count=$count+1
result=$result+$num

仅供参考,望采纳,谢谢。