在bash脚本中检查日志文件中的错误时出现条件问题
我正在尝试检查下面代码中的count2的错误在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
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