shell 如果AWK条件给出错误输出

nwlls2ji  于 2023-01-26  发布在  Shell
关注(0)|答案(1)|浏览(137)

这是一段代码,我希望结果显示为Failed,但它最终给我的是Ok消息。我进行了交叉检查,crontab条目确实包含代码正在搜索的字符串。据我所知,NR == 0应该为false,$0〈1的用途是什么?
Crontab条目如下所示:

# comment x

00 5 * * * /opt/vol/scripts/volumes.sh -m SOP

代码:

shell: |
  crontab -l | grep -v "^#" | grep "/opt/vol/scripts/volumes.sh" | grep "SOP" |
  awk 'END { if (NR==0 || $0<1) print "OK - sop job not scheduled"; else print "FAILED - sop job should not be scheduled"; }

错误输出:

OK - sop job not scheduled

预期输出:

FAILED - sop job should not be scheduled
aelbi1ox

aelbi1ox1#

为了简化:

if crontab -l | grep -Eq "^\s*[^#].*/opt/vol/scripts/volumes\.sh.*SOP"; then
    echo "OK - sop job scheduled"
    exit 0
else
    echo "FAILED - sop job should not be scheduled" >&2
    exit 1
fi

如果不是预期的echo,请编辑echo的行

相关问题