我只想在一组日志文件中找到特定文本时才能获得退出代码。
如果未找到匹配项,或者没有文件存在,则命令应成功通过。
Grep应该保持沉默,因为我不想看到比赛。我只想知道是否找到了模式(使用退出代码)。
不知怎的,似乎如果使用安静模式来静音grep,结果代码将永远是成功的。
答案 0 :(得分:1)
为我工作
mkdir _ ; cd _ ; touch a ; echo b > b
grep -q c * || echo $?
1
0表示成功,1表示没有匹配。在某种情况下,您不需要$?,您可以直接使用该命令:
if grep -q c * ; then
echo Found
else
echo Not found
fi
答案 1 :(得分:0)
解决方案是使用! grep ... >/dev/null
。