【问题标题】:What does "|" mean in a terminal command line? [closed]“|”是什么意思在终端命令行中是什么意思? [关闭]
【发布时间】:2012-09-06 04:38:20
【问题描述】:

很抱歉在这里发布,但 Google 在搜索符号时做得很糟糕。

“|”是什么意思意思是:

"some string" | someexecutable.py

【问题讨论】:

标签: linux bash terminal


【解决方案1】:

它是管道符号。它在命令行上分隔两个程序(参见bash 手册中的Pipelines),第一个程序的标准输出(在管道的 LHS 上)连接到第二个程序的标准输入(在管道的 RHS)。

例如:

who | wc -l

为您提供连接到您的计算机的人数或会话数(加上来自who 的标题行)。打折标题行:

who | sed 1d | wc -l

sed 的输入来自whosed 的输出为wc

底层系统调用是pipe(2),与fork()dup2()exec*()系统调用结合使用。

【讨论】:

  • 注意,与其他字符组合时,|符号有不同的含义。在“所有”shell 中,|| 是一个逻辑连接词。它执行第一个命令;如果它以非零(失败)状态退出,它也会执行第二个命令。在 Bash(可能还有其他一些 shell)中,|&| 的变体,它将标准错误和标准输出发送到管道中的下一个命令。有时,解释一系列符号很困难(ls|<xml>html mapper 可能不会像您想的那样)。
【解决方案2】:

它叫做pipe。它将第一个命令 ("some string") 的标准输出作为第二个命令 (someexecutable.py) 的标准输入。

【讨论】:

    【解决方案3】:

    |是一个管道。它将一个命令的输出作为下一个命令的输入发送。这里解释一下http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-103-4/#3-pipes

    【讨论】:

      猜你喜欢
      • 2015-05-20
      • 2020-07-29
      • 1970-01-01
      • 2010-12-29
      • 2014-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多