shell pipeline 如何处理无限循环

2024-01-24

每当我需要限制 shell 命令输出时,我都会使用 less 对结果进行分页:

cat file_with_long_content | less

它工作得很好,但我很好奇的是,即使输出永远不会结束, less 仍然有效,请考虑将以下脚本放在inf.sh file:

while true; do date; done

然后我跑

sh inf.sh | less

而且它仍然能够再次对结果进行分页,那么说管道流式传输结果而不是等待命令完成后再输出结果是否正确?


是的,当你跑步时sh inf.sh | less这两个命令并行运行。第一个进程写入管道的数据会(由内核)缓冲,直到第二个进程读取为止。如果缓冲区已满(即,如果第一个命令写入管道的速度快于第二个命令的读取速度),则下一个写入操作将阻塞,直到有更多空间可用。从空管道读取时会发生类似的情况:如果管道缓冲区为空但输入端仍然打开,则读取将阻塞以获取更多数据。

See the pipe(7) http://www.kernel.org/doc/man-pages/online/pages/man7/pipe.7.html手册了解详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell pipeline 如何处理无限循环 的相关文章

  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • Bash 实例未嵌套在 Dockerfile `RUN` 中

    嵌套 bash 实例会递增 SLVL 环境变量 http tldp org LDP abs html internalvariables html http tldp org LDP abs html internalvariables h
  • 如何从 HTTP URL 下载文件?

    我知道如何使用wget从FTP下载但我无法使用wget从以下链接下载 如果您将其复制并粘贴到浏览器中 它将开始下载 但我想将它直接下载到我们的服务器 这样我就不需要将它从我的桌面移动到服务器 我该怎么做 Thanks 这就是我所做的 wge
  • SVN 提交后挂钩在提交后不会运行

    我的服务器上设置了 SVN 存储库 并且遇到提交后问题 我在 iMac 上使用 SmartSVN 作为客户端 我通过 SmartSVN 的 ssh svn 连接 我能够成功连接到 SVN 并对其进行更改 但从 SVN 客户端提交后 我的提交
  • 在 bash 脚本中检测鼠标点击

    我想知道如何在后台运行 bash 脚本 每当用户单击鼠标时该脚本都会执行某些操作 即运行脚本或命令或其他任何内容 即使终端关闭 我也希望它继续运行 有任何想法吗 谢谢 如果您使用的是X11 您可以尝试xdotool捕获鼠标事件 它会是这样的
  • 在 AIX 中使用 Mailx 通过电子邮件发送 SQLPlus 查询结果的 Shell 脚本

    我有我需要的命令 如果我在提示符下执行这些命令 一切都会按预期进行 SQLPlus 运行查询 将结果导出到文件 然后 Mailx 将该文件通过电子邮件发送给我 sqlplus username pwd instance SPOOL home
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • linux下如何从文本文件中获取值

    我有一些文本格式的文件 xxx conf 我在这个文件中有一些文本 disablelog 1 当我使用 grep r disablelog oscam conf 输出是 disablelog 1 但我只需要值1 请问你有什么想法吗 一种方法
  • Rails 4.1 环境变量未重新加载

    我创建了一个application yml文件在配置目录中并添加了一些键值对 即AWS REGION us east 1 我还添加了以下内容application rb读取文件并更新 ENV 哈希 if Rails env developm
  • 为什么 Git Bash 无法运行我的可执行文件?

    I am on git for windows https github com git for windows 吉特 巴什 我无法在命令行上运行可执行文件 Pedr Abc 07 MINGW64 c dev ls sqlite3 exe
  • 如何捕获 X 错误?

    我尝试在网上搜索 但我必须注意 找到有关 X 编程这方面的材料并不容易 我使用 X 和 GLX 来创建 OpenGL 上下文 我已经知道我当前的显卡驱动程序仅支持 OpenGL API 版本 3 3 但我希望我的应用程序能够尝试创建任何类型
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • 检查已安装的软件包,如果没有找到则安装

    我需要检查已安装的软件包 如果未安装则安装它们 RHEL CentOS Fedora 示例 rpm qa grep glibc static glibc static 2 12 1 80 el6 3 5 i686 如何在 BASH 中进行检
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • 如何使用 UNIX shell 脚本删除平面文件的页眉和页脚记录?

    我有一个平面文件 如下所示 如何使用 UNIX shell 脚本从文件中删除页眉和页脚并重写同一文件 9 20050427 HEADER RECORD 0000000 00000 000000000 123456 00 654321 DAT
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for

随机推荐

  • Pandas TypeError:无法转换为数字

    我正在开发一个项目 将数据从 SQL 导入到 pandas DataFrame 中 这似乎进行得很顺利 但是当我采取pandas mean 它抛出一个 TypeError 指出串联的值列表无法转换为数字 见下文 示例数据框 ProductS
  • POSIX 部分写入()

    如 SUSv4 或 POSIX 1 2008 中所述 http pubs opengroup org onlinepubs 9699919799 functions write html tag 16 685 08 http pubs op
  • C++ 使用类方法作为函数指针类型

    在 C 库中 有一个函数正在等待函数指针 这样 lasvm kcache t lasvm kcache create lasvm kernel t kernelfunc void closure 其中 lasvm kernel t 定义为
  • 除了 Tesseract 之外还存在哪些 OCR 选项? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 Tomcat 上运行的 servlet 进行文件 I/O

    我正在编写一个 Java servlet 使用 Tomcat 作为容器 它创建 PDF 文件并向最终用户提供服务 目前 PDF 文件是在内存中创建的 并作为对 POST 的响应写出 我想对此进行一些更改 以便将 PDF 文件写入磁盘 以便稍
  • Django 'pip install django-heroku'(psycopg2) 错误阻止部署到 Heroku

    我正在设置一个新的 Django 项目以在 Heroku 上部署 但是当我遵循 Django Heroku 部署指南时 我在 pip install django heroku 期间遇到错误 我正在运行 OS MacOS Mojave 10
  • 如果解决失败则重定向 Angular 2

    如果 Angular 2 中解析失败 如何重定向到另一个页面 我将此称为编辑页面的解析 但我想处理解析页面中的错误 我的决心 resolve route ActivatedRouteSnapshot Promise
  • 闪亮的反应功能没有按预期更新

    原始问题发布在这里 闪亮的反应性意外行为 https stackoverflow com questions 27478028 shiny reactive unexpected behavior该问题被重新发布在这里 试图改进之前在上面提
  • 绘制给定预先计算的计数和箱的直方图

    我有一些数据x我传递给numpy histogram x 获取计数和 bin 边缘 然后我将它们保存到文件中 稍后 我想加载此数据并绘制直方图 I have counts 20 19 40 46 58 42 23 10 8 2 bin ed
  • 在 R 中拟合非线性 Langmuir 等温线

    我想在 R 中为以下数据拟合等温模型 最简单的等温模型是此处给出的 Langmuir 模型型号在页面底部给出 http www alfisol com IFS IFS 003 LMMpro Langmuir php 下面给出了我的 MWE
  • 使用 Visual Basic 自动登录表单

    我需要使用 Visual Basic 10 0 创建一个自动登录表单应用程序 代码如下 table cellpadding 0 cellspacing 0 border 0 height 100 tr td width 50 height
  • 在 iPhone 中创建基于时间的提醒应用程序

    我正在开发基于时间的提醒应用程序 用户在其中输入他的提醒和提醒时间 问题是如何不断地将当前时间与用户定义的时间进行比较 任何示例代码都会有很大帮助 因为我被困在这一点上 将当前时间与用户定义的时间进行比较并不是正确的设计模式 UIKit 提
  • 导航组件防止在后按时重新创建片段

    我在项目中使用 Jetpack 导航组件 其中包含单个活动和一些片段 我有一个带有从服务器端填充的列表的片段 我打电话getDataFromServer on the onViewCreated然后 当用户单击某个项目时 会显示一个新片段
  • 在 Excel 中将超链接转换为 HTML 代码

    我的 Excel 文件中有一列超链接 我想将它们转换为各自的 HTML 代码 a href http www example com Link Name a 我找到了仅提取链接 作为文本 的方法 但我需要将整个 HTML 代码作为文本来替换
  • 如何在.NET 中解析 UDP 数据包?

    如何在 NET 中解析 UDP 数据包 我使用 PCap Net 捕获数据包 在本例中为 UDP 数据包 我可以通过 PcapDotNet packets Ethernet IpV4 Udp 从 PCap net 对象访问这些数据包 我如何
  • Jquery 列表框更改事件不会在键盘滚动时触发

    我有一个 HTML 表单上的简单列表框和这个非常基本的 jQuery 代码 Toggle visibility of selected item selCategory change function prashQs addClass hi
  • 在设备的默认浏览器中打开链接。人行横道 Android 应用程序

    我正在使用 HTML 和 JavaScript 创建适用于 Android 设备的应用程序 我正在使用 Crosswalk 15 44 384 12 将其捆绑到 Android 应用程序中 这几乎创建了一个内置 Web 浏览器的 Andro
  • 可以嵌套 HTML 表单吗?

    是否可以像这样嵌套 HTML 表单
  • 是否可以使用egrep来匹配某个范围内的数字?

    有没有办法grep egrep两组数字之间 egrep SomeText 19999 22000 some file txt 它不返回值 我预计 SomeText 19999 ffuuu SomeText 20001 ffuuu SomeT
  • shell pipeline 如何处理无限循环

    每当我需要限制 shell 命令输出时 我都会使用 less 对结果进行分页 cat file with long content less 它工作得很好 但我很好奇的是 即使输出永远不会结束 less 仍然有效 请考虑将以下脚本放在inf