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

时间:2019-10-26 11:36:07

标签: 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
+ count2=385
+ [[ 3 -gt 385 ]]
+ echo works

为什么情况进入其他状态? altought 3不是gt 385吗?

1 个答案:

答案 0 :(得分:0)

if [[ 3 -gt $count2 ]] # with count2 being 385
then
echo "$count2"
else
echo "works"
  

尽管3不大于385(为什么改写更清楚),为什么条件还要进入其他条件?

它准确地输入else,因为 3不大于385。您的条件检查3 > 385是否执行,是否执行then位,或者如果不执行,则执行else位。这是预期的(无论如何,即使不是您所期望的,也从代码中得出)。


也许您的意思是说相反的条件,很难从您的问题中分辨出来。如果是 情况,那就是$count2 -gt 3