我正在尝试编写一个shell脚本,该脚本将grep查找应从文件中排除的关键字,如果它从被排除的文件中找到其他内容,则应执行特定的命令。
logcheck=`grep -vq 'accepting\|idle.' /tmp/lpstat-Final.log`
if [[ $logcheck == 'accepting\|idle.' ]] ; then
status=0
statustxt=OK
else
echo "Something found"
fi
结果应该是“是否接受”以外的其他内容。发现它应该转到else语句,否则存在状态将为0
if ! grep -Evq 'accepting|idle' /tmp/lpstat-Final.log; then
status=0
statustxt=OK
else
echo 'Something found'
fi
这里最主要的是,grep
如果您使用,将不会产生任何输出-q
。这意味着使用命令替换将不会捕获任何内容($logcheck
在您的代码中将为空)。相反,我们使用实用程序的退出状态来确定是否找到了某些内容。
我在-E
这里使正则表达式更漂亮;交替也需要它(\|
基本正则表达式中的alt是扩展,由GNU支持grep
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句