你好,当我在使用 Ubuntu CLI 的 head 命令时,我遇到了一种情况。无论我输入什么,它都会自动回显。
图中提到的命令及其作用。
那么有人可以向我解释一下那里发生了什么吗 ?
笔记:这里的h.txt是我用原始信息制作的通用文本文件。
答案1
使用-
您正在阅读的选项“标准输入”. 来自的手册页head(1)
:
when FILE is -, read standard input.
在这种情况下,您的键盘是标准输入,因为您的 shell 不提供其他输入head
。每次您提供一行时,它只会处理它最多 10 次,因为它默认输出前 10 行。由于您的 shell 还会打印您提供的输入,因此您将看到所有行两次。
当你是向标准输入提供一个流head
,那么您的键盘输入将不会被抓取。例如:
echo blaat | head -
将使echo
输出“blaat”到标准输出,并且您的 shell 会将其连接到标准输入head
(如 所表示|
)。
注意:如果未给出任何参数,head
也将从标准输入读取。
使用 head 连接标准输入的一个更有用(随机)的例子是:
grep error /var/log/syslog | grep -iv apache | head
将打印匹配的前 10 行error
,但不apache
来自/var/log/syslog
。