我经常在 Bash 中使用管道,例如:
dmesg | less
虽然我知道这会输出什么,但这需要dmesg
让我滚动浏览它less
,我不明白什么|
是在做。是不是正好相反>
?
- 有没有一个简单的或隐喻的解释
|
does?
- 当一条管线中使用多个管道时会发生什么情况?
- 管道的行为在 Bash 脚本中出现的所有地方都一致吗?
Unix 管道将第一个进程的 STDOUT(标准输出)文件描述符连接到第二个进程的 STDIN(标准输入)。然后发生的情况是,当第一个进程写入其 STDOUT 时,第二个进程可以立即读取该输出(从 STDIN)。
使用多个管道与使用单个管道没有什么不同。每个管道都是独立的,只是链接相邻进程的 STDOUT 和 STDIN。
你的第三个问题有点含糊。是的,管道本身在 bash 脚本中的任何地方都是一致的。然而,管道字符|
可以代表不同的事物。双管(||
),例如表示“或”运算符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)