grep 表现奇怪

grep 表现奇怪

Grep 在我的一个系统(Ubuntu 桌面 - 我所有其他系统都是 Ubuntu 服务器)上表现得很奇怪,我不明白为什么。我创建了一个名为的控制文件文本其中包含以下文本:

grep
test!!

以下命令适用于我的所有系统(问题子系统除外):

$ grep grep *
text:grep
$ grep 'test!!' *
text:test!!

在我的问题上,子 grep 只是挂起。我比较过.bashrc,.bash_别名, 乃至/etc/bash_completion,但我找不到问题所在。有什么想法可能导致问题吗?

答案1

在有问题的机器上,在目录中是否grep 'something' *有任何特殊文件,例如套接字、命名管道(fifos)等?

至少在命名管道的情况下,grep 不会从命名管道获取 EOF,直到某些内容实际将 EOF 写入命名管道。

答案2

如果它挂起,对我来说听起来像是它正在寻找来自标准输入的输入。

您可以通过键入 Control-D(仅一次)来证明这一点 - 它将返回到 shell。

如果这是正确的,则 * 找不到任何文件。

答案3

有类似的问题,罪魁祸首是一个名为“-”的胭脂目录,它很可能被解释为“从标准输入读取”而不是目录名称

> grep 'something' * 
> grep 'something' f1 f2 f3 - f4 f5  ...

相关内容