linux shell管道是流水线的吗?

JC1

给定一个文件input.txt如果我做类似的事情

grep pattern1 input.txt | grep pattern2 | wc -l

第一条命令的输出是否连续传递(一旦生成)作为第二条命令的输入?

还是管道等到第一个命令完成才开始运行第二个命令?

查尔斯·达菲

是的,它们是流水线式的-每个组件的stdout通过FIFO连接到下一个的stdin,并且所有组件都是并行启动的。


这就是为什么

cat some-file | ...tools... >some-file

...通常会导致文件被截断:由于管线是同时启动的,因此最后一部分(some-file为写入而截断)发生在cat从输入读取文件完成(或经常甚至开始)之前

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Linux:将一个程序的流水线输出到另一个程序

来自分类Dev

使用需要tty的shell脚本的ansible流水线模式

来自分类Dev

使用需要tty的shell脚本的ansible流水线模式

来自分类Dev

流水线之后的多个命令和子Shell执行

来自分类Dev

加快流水线化

来自分类Dev

SMB / CIFS流水线

来自分类Dev

流水线和xargs

来自分类Dev

在流水线管道中使用Google Cloud pub / sub服务有什么好处

来自分类Dev

HTTP流水线请求文本示例

来自分类Dev

多项式中的流水线

来自分类Dev

尾部调用流水线函数

来自分类Dev

如何绘制代码的流水线执行

来自分类Dev

流水线与Redis中的交易

来自分类Dev

流水线算法定义

来自分类Dev

复杂指令和流水线

来自分类Dev

sklearn中的流水线问题

来自分类Dev

使用RxJava进行线程流水线

来自分类Dev

处理器流水线混乱

来自分类Dev

HTTP流水线请求文本示例

来自分类Dev

Verilog的流水线设计问题

来自分类Dev

流水线算法定义

来自分类Dev

通过流水线了解MIPS组装

来自分类Dev

向流水线命令添加输入

来自分类Dev

Bash:子进程和流水线

来自分类Dev

流水线中的 MIPS lw 延迟

来自分类Dev

构建流水线项目 Jenkins

来自分类Dev

重启 Jenkins 流水线并调整参数

来自分类Dev

在 C 中实现 shell - 流水线输入具有正确的输出但退出循环

来自分类Dev

Oracle:将子选择转换为流水线函数吗?