在bash脚本中检查日志文件中的错误时出现条件问题

在bash脚本中检查日志文件中的错误时出现条件问题,bash,shell,Bash,Shell,我正在尝试检查下面代码中的count2的错误 DAY=`TZ=GMT-3 date "+%Y-%m-%d %H"` count2=$(cat $source_dir/xx.log |grep $check_str|grep "$DAY" | wc -l) if [[ 3 -gt $count2 ]] then echo "$count2" else echo "works" 当我在sh-x模式下工作时,输出是 ++ grep '2019-10-26 04' ++ wc -l + count

我正在尝试检查下面代码中的count2的错误

DAY=`TZ=GMT-3 date "+%Y-%m-%d %H"`

count2=$(cat $source_dir/xx.log |grep $check_str|grep "$DAY" | wc -l)

if [[ 3 -gt $count2 ]]
then
echo "$count2"
else
echo "works"
当我在sh-x模式下工作时,输出是

++ grep '2019-10-26 04'
++ wc -l
+ count2=385
+ [[ 3 -gt 385 ]]
+ echo works
为什么会进入其他状态?Altound 3不符合gt 385

if [[ 3 -gt $count2 ]] # with count2 being 385
then
echo "$count2"
else
echo "works"
尽管3不大于385,为什么条件进入else(重新编写以希望更清楚)

因为3不大于385,所以它准确地输入了
else
。您的条件检查是否
3>385
,执行
位,如果执行,则执行
位,如果不执行,则执行
位。这是意料之中的(不管怎样,从代码中,即使它不是您所期望的)


也许你的意思是把条件放在相反的意义上,很难从你的问题中分辨出来。如果是这种情况,它将是
$count2-gt 3