尝试同时测试大于和小于时,参数过多错误

时间:2019-04-04 21:37:04

标签: linux bash

正如标题所述,我只希望该行测试变量是否大于10但小于30,但返回的错误为“参数过多”

if [ -f myClass ] && grep 'John Smith' myclass > /dev/null

then cat myclass

elif [ -f grades ]

then

grep "s100" grades

elif
[ $ca82 -gt 10 -a $ca82 -lt 30 ]

then
echo "success"

else
echo "test 2"

fi

3 个答案:

答案 0 :(得分:1)

elif [ $ca82 -gt 10 ] && [ $ca82 -lt 30 ]

提供您将$ca82设置在某个地方

答案 1 :(得分:0)

您需要的是变量本身的引号。其余的都很好。所以:

[ "$ca82" -gt 10 -a "$ca82" -lt 30 ]

答案 2 :(得分:0)

如果cat82是数字,但其中包含space,则您的代码应该可以使用。这就是为什么test命令抱怨参数过多的原因。