为什么“grep关键字”会导致终端永远处于待机状态?

为什么“grep关键字”会导致终端永远处于待机状态?

当我在终端中输入“grep doc”时,它只是不执行任何操作,在我使用Ctrl+C或转义之前阻止终端执行任何其他操作Z

我知道这不是我应该使用 grep 的方式,但只是好奇为什么会发生这种情况。

答案1

grep如果没有给出文件,默认情况下搜索标准输入:

grep 搜索命名输入文件(如果没有命名文件,或者如果给出单个连字符减号 (-) 作为文件名,则搜索标准输入)以查找包含与给定 PATTERN 匹配的行。默认情况下,grep 打印匹配的行。

如果您只是执行grep docgrep 期望标准输入出现并在其中进行搜索(不要在终端之间<>终端中输入部分,这些是注释):

$ grep doc
a b c <PRESS ENTER HERE>
doc <NO MATCH WAS FOUND IN PREVIOUS LINE, TYPE doc AND PRESS ENTER AGAIN>
doc <MATCH WAS FOUND>

答案2

grep正在等待输入。

man grep

[...]
DESCRIPTION
       grep  searches  the named input FILEs (or standard input if no files are named
[...]

相关内容