我经常在 Bash 中使用管道,例如:
dmesg | less
虽然我知道这会输出什么,但它需要 dmesg
并让我用 less
滚动它,我不明白 |
是什么是在做。它只是 >
的反义词吗?
|
的作用是否有简单的或比喻性的解释?- 当在一条线路中使用多个管道时会发生什么情况?
- 管道的行为在 Bash 脚本中出现的任何地方都一致吗?
最佳答案
Unix 管道将第一个进程的 STDOUT(标准输出)文件描述符连接到第二个进程的 STDIN(标准输入)。然后发生的事情是,当第一个进程写入其 STDOUT 时,第二个进程可以立即(从 STDIN)读取该输出。
使用多个管道与使用单个管道没有什么不同。每个管道都是独立的,只是简单的链接相邻进程的STDOUT和STDIN。
你的第三个问题有点模棱两可。是的,管道本身在 bash 脚本中的任何地方都是一致的。然而,管道符 |
可以代表不同的东西。双竖线 (||
),例如表示“或”运算符。
关于bash - Bash 中管道如何工作的简单解释是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9834086/