我一直认为有条件-q
使用时必须使用quiet ( ) 选项grep
。但是重新阅读man
页面似乎没有它应该可以工作。
因此,如果您想打印匹配项并在有条件的情况下使用它,您可以做类似的事情吗?
grep PATTERN FILE && do_something_else
Run Code Online (Sandbox Code Playgroud)
唯一让我不确定的是退出状态似乎略有不同。
与-q
,
没有 -q
但我想不出一个差异会变得明显的例子?
下面是一个例子:
$ echo "foo" > file
$ grep foo file wrongfile; echo "Exit status: $?"
file:foo
grep: wrongfile: No such file or directory
Exit status: 2
$ grep -q foo file wrongfile; echo "Exit status: $?"
Exit status: 0
Run Code Online (Sandbox Code Playgroud)
因此,我们有一个名为的文件file
,其中包含字符串foo
. 当我跑grep
与-q
上file
和不存在的wrongfile
,因为file
含有匹配,grep
与退出0
尽管“没有这样的文件”的错误状态。