终端命令中的“|”(竖线)字符是什么意思?

终端命令中的“|”(竖线)字符是什么意思?

示例:在终端命令中

xdpyinfo | grep 解析
(这是我从一个答案中得到的),
|
字符意味着
信息
输出将被发送到 grep 程序输入,用于打印包含以下内容的行
解决
字符串?我应该在哪里寻找这样的信息以避免用太简单的问题填满这个论坛?谢谢。

答案1

竖线|通常被称为“管道”。它用于将一个命令通过管道传输到另一个命令中。也就是说,它将第一个命令的输出定向到第二个命令的输入中。所以你的解释很准确。

答案2

它被称为 a pipe(或 a pipeline),这意味着它前面的命令的输出作为它后面的命令的输入。

例子:

dmesg | tail
bash --version | tac

欢迎您尝试不使用管道的命令。

是的,你是对的:在这种情况下,命令xdpyinfo显示信息,并将其解析为grepgrep过滤结果并仅显示resolution其中包含的行。

更多信息pipe

答案3

您的解释是正确的。| 字符将第一个命令的输出通过管道传输到第二个命令的输入流中。这两个命令实际上是并行运行的,就像两个并发进程一样。这是“管道和过滤器范例”的例证(通过管道传输简单函数来构建复杂函数),这是 Unix 的标志。

有关这方面的更多信息,我建议您阅读一些关于 bash 或 shell 脚本的教程。网上有很多这样的教程。我敢打赌,Unix/GNU shell 的优雅和强大一定会让您大吃一惊。

答案4

该字符 |有时被称为管道,用于连接一个命令的输出并将其输入到另一个命令中。

因此xdpyinfo | grep resolution首先运行命令xdpyinfo(显示有关 X 的信息的实用程序),而不显示任何输出。此命令的输出被输入到 grep(正则表达式解析器)中,以查找任何包含解析的条目。

您看到的只是您想要的信息,而不是命令的完整输出xdpyinfo

相关内容