COUNTER=0
let COUNTER=COUNTER+1
count=`ssh -i /var/www/.ssh/id_rsa_root -o stricthostkeychecking=no $host $cmd`
count1=`echo $count | awk '{print $4}'`
printf "count1 : $count1\n"
result1=${count1/.*}
if [ "$result1" -ge "0" ]; then
echo $host
else
echo $host
exit
fi
如果$result1
值INTEGER和大于零,它会转到IF循环(对我来说工作正常)[:整数表达式预期
但是,当它不是INTEGER,它是未来到别的环路(它是该做的),出现以下错误的输出
line 55: [: : integer expression expected
,但我不希望在我的输出上面的错误。我试图用2>/dev/null
这个,但没有运气。
请帮忙!
检查你的代码http://shellcheck.net – Jahid
另外,如果你使用'sh -x yourscript'来运行它,你会看到正在使用的_actual_值,所以你将能够看到/为什么它不是一个整数。 –
另外,您正在使用'printf'错误。不要替换为格式字符串;而是使用格式字符串来告诉系统如何进行替换:'printf'count1:%s \ n'“$ count1”' –