我正在阅读 grep 手册页,并遇到了 -q 选项,它告诉 grep “不向标准输出写入任何内容。如果发现任何匹配,即使检测到错误,也立即以零状态退出。”
我不明白为什么这可能是理想或有用的行为。在一个程序中,其原因似乎是从标准输入读取、处理、写入标准输出,为什么我想完全使其安静?
在什么情况下,沉默一个以输出为目标的程序会有用?为什么有人想要完全忽略错误并强制成功返回代码?
Thanks!
退出状态为grep
并不一定表示error;它表明success or failure. grep
将成功定义为匹配 1 行或多行。失败包括匹配零线,or一些其他错误首先阻止了匹配的发生。
-q
当您不关心哪些行匹配时使用,只关心some行匹配。
if grep -q foo file.txt; then
echo "file.txt contains foo"
else
echo "file.txt does not contain foo"
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)