我在阅读 grep 手册页时遇到了 -q 选项,它告诉 grep “不要向标准输出写入任何内容。如果找到任何匹配项,即使检测到错误,也会立即以零状态退出。”
我不明白为什么这可能是理想的或有用的行为。在一个似乎从 stdin 读取、处理、写入 stdout 的程序中,我为什么要完全静音它?
在什么情况下,将以输出为目标的程序静音会有用?为什么有人想要完全忽略错误并强制返回成功代码?
谢谢!
最佳答案
grep
的退出状态不一定表示错误 ;它表示成功 或失败。 grep
将成功定义为匹配 1 行或多行。失败包括匹配零行,或一开始就阻止匹配发生的一些其他错误。
-q
在您不关心哪些行匹配时使用,只关心 一些 行匹配。
if grep -q foo file.txt; then
echo "file.txt contains foo"
else
echo "file.txt does not contain foo"
fi
关于linux - "grep -q"有什么意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56170215/