linux – shell管道如何处理无限循环

linux – shell管道如何处理无限循环,第1张

概述每当我需要限制 shell命令输出时,我使用less来分页结果: cat file_with_long_content |减 它工作得很好,花花公子,但我很好奇的是,即使输出永远不会结束,仍然可以工作,考虑在inf.sh文件中使用以下脚本: 而真实;做日期; DONE 然后我跑了 sh inf.sh |减 并且它仍然能够再次对结果进行分页,所以说管道流结果而不是在输出结果之前等待命令完成是否正确? 每当我需要限制 shell命令输出时,我使用less来分页结果:

cat file_with_long_content |减

它工作得很好,花花公子,但我很好奇的是,即使输出永远不会结束,仍然可以工作,考虑在inf.sh文件中使用以下脚本:

而真实;做日期; DONE

然后我跑了

sh inf.sh |减

并且它仍然能够再次对结果进行分页,所以说管道流结果而不是在输出结果之前等待命令完成是否正确?

解决方法 是的,当你运行sh inf.sh |时少两个命令并行运行.由第一个进程写入管道的数据被缓冲(由内核)直到第二个进程读取.如果缓冲区已满(即,如果第一个命令写入管道的速度比第二个命令读取的速度快),则下一个写入 *** 作将阻塞,直到有更多空间可用.从空管读取时会出现类似情况:如果管道缓冲区为空但输入端仍处于打开状态,则读取将阻止更多数据.

有关详细信息,请参阅pipe(7)手册.

总结

以上是内存溢出为你收集整理的linux – shell管道如何处理无限循环全部内容,希望文章能够帮你解决linux – shell管道如何处理无限循环所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/1027520.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存