shell中管道组件的执行顺序

2023-12-10

ls | wc

按什么顺序ls and wc在这里执行?或者是| and wc只是论点ls?


在表达式中ls | wc,您的 shell 将大致执行以下操作:

  1. 启动两个子 shell A 和 B,A 的标准输出连接到 B 的标准输入。
  2. 在子 shell A 中,启动命令ls
  3. 在子 shell B 中,启动命令wc
  4. 等待所有子 shell 终止
  5. set $?到子 shell B 的退出状态(即wc)

The bash联机帮助页有更多详细信息:

管道

管道是由一个或多个命令组成的序列,由其中之一分隔 控制操作符| or |&。管道的格式为:

[time [-p]] [ ! ] command [ [|│|&] command2 ... ]

标准输出为command通过管道连接到标准输入command2。此连接在任何重定向之前执行 由命令指定(参见REDIRECTION以下)。如果|&被使用时, 命令的标准错误连接到command2的标准输入 通过管道;它是简写2>&1 |。这种隐含的 标准错误的重定向是在任何重定向之后执行的 由命令指定。

管道的返回状态是最后一个管道的退出状态 命令,除非pipefail选项已启用。如果pipefail是 启用后,管道的返回状态是最后一个值 (最右边)命令以非零状态退出,如果全部则为零 命令成功退出。如果保留字!在一个之前 管道,该管道的退出状态是逻辑非 退出状态如上所述。 shell 等待所有命令 在返回值之前终止管道。

If the time保留字位于管道之前,经过的以及 当执行时,会报告其执行所消耗的用户和系统时间 管道终止。这-p选项将输出格式更改为 由 POSIX 指定。这TIMEFORMAT变量可以设置为某种格式 指定如何显示计时信息的字符串; 参见描述TIMEFORMAT在下面的 Shell 变量下。

管道中的每个命令都作为单独的进程执行(即,在 一个子外壳)。

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

shell中管道组件的执行顺序 的相关文章

  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • Linux 上的静态 Qt5 构建:部署时如何处理字体?

    我使用这些配置选项创建了 Qt 5 2 0 库的静态版本 Ubuntu 12 04 开源 确认许可 force pkg config 发布 静止的 前缀 home juzzlin qt5 无icu opengl桌面 无油嘴滑舌 辅助功能 n
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • GIT 和 Ruby:如何从 ruby​​ 脚本内部取消设置 GIT_DIR 变量?

    我编写了一个非常简单的 部署 脚本作为我的post update挂钩到我的裸 git 存储库中 变量如下 live domain mydomain com staging domain stage mydomain com git repo
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • 是否有任何有角度的日期前管道?

    我正在尝试创建帖子共享网站 我想以角度创建日期前管道 import Pipe PipeTransform from angular2 core Pipe name messageTime pure false export class Me
  • 如何正确使用fork、exec、wait

    我正在编写的 shell 需要执行用户提供给它的程序 这是我的程序的非常简短的简化版本 int main pid t pid getpid this is the parents pid char user input NULL size
  • 如何让R使用所有处理器?

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

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 如何扩展路径中的波形符(~)[重复]

    这个问题在这里已经有答案了 我有一个 shell 脚本 可以从用户那里获取目录路径 但我需要检查目录是否为空 如果用户将他的主路径与 而不是绝对路径 所以我无法检查它ls echo Specify your project root dir
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • Jenkins:如何在 Windows 从机中执行 shell 脚本

    我有一个 Windows 从机 安装了 bash 我正在尝试在其上运行 shell 脚本作为预构建步骤 关于我如何做到这一点有什么想法吗 您需要使用脚本作为参数来运行 bash bash yourscript
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • 如何在 Mac OSX Mavericks 中正确运行字符串工具?

    如何在 Mac OSX Mavericks 中正确运行字符串工具 我尝试按照我在网上找到的示例来运行它 strings a UserParser class 但我收到此错误 错误 Applications Xcode app Content
  • 为什么同一个curl命令在windows和linux下输出不同的东西?

    为什么同样的curl o file https www link com 命令输出不同的东西 例如 如果我运行命令curl o source txt https www youtube com playlist list PLIx6Fwnp
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp

随机推荐

  • Angularjs 动态指令

    注意 我对 angularjs 很陌生 问题的最佳解决方案 实践是什么 我有一个数组或键入的值 对于每种类型应该有不同的输入 模板和输入验证 例如 并简化 var vars type int value 42 min 0 max 42 ty
  • 使用 python API 进行的训练作为 java API 中 LabelImage 模块的输入?

    我在使用 java tensorflow API 时遇到问题 我使用 python tensorflow API 运行训练 生成文件 output graph pb 和 output labels txt 现在 出于某种原因 我想使用这些文
  • 在delphi中使用数据模块分离数据集实例

    我在用Delphi6并有一个数据模块ADO DataSet它由两种形式使用 formS 和 Form B 每种形式都有一个Dataset Open in OnCreate and Dataset Close in OnClose 如果两个表
  • 使用 Flot API 绘制多个条形图 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 您好 我正在使用 FLOT 图表 API 在我的应用程序中以条形图的形式显示数据 我需要在条形图中显示数据 并在包含前数据和后数据的类别中显示数据 如图所示 示例图 请告诉我如何
  • asp.net mvc 用多个枚举装饰 [Authorize()]

    我有一个控制器 我希望两个角色能够访问它 1 位管理员或 2 位主持人 我知道你可以做 Authorize Roles admin moderators 但我的角色在枚举中 使用枚举我只能授权一个角色 我不知道如何授权两个 我尝试过类似 A
  • 将数据帧转换为元组列表的字典

    我有一个如下所示的数据框 user item 0 b80344d063b5ccb3212f76538f3d9e43d87dca9e The Cove Jack Johnson 1 b80344d063b5ccb3212f76538f3d9e
  • JavaScript 新关键字和对象范围

    今天晚些时候 我滚动浏览 ejhon com 幻灯片 发现了以下内容 给这个代码 function katana this myvar true katana console info myvar 在我编译代码的那一刻 我认为 myvar
  • 将 `params` 和 `session` 以及 `env` 添加到对象

    在我正在写的宝石中 我正在尝试添加机架方法params session and env to Object以便gem的用户可以访问和修改它们 我尝试过使用Object instance variable set and Object ins
  • 获取iPhone照片曝光信息

    有没有办法获取 iPhone 拍摄的照片的曝光设置 光圈 快门速度 ISO 在 iPhone 上运行的应用程序可以使用 UIImagePickerController 接口来拍照 但这并不能提供有关图片的太多信息 iPhone 拍摄的照片的
  • Angular Material MatChipList - 如何在动态 FormArray 上使用它?

    堆栈闪电战 这是我的 FormArray 变体 this productGroup this fb group name variants this fb array this fb group type options 我在用着MatCh
  • 使用 LINQ 和 Lambda 加入/Where

    我在使用 LINQ 和 Lambda 编写的查询时遇到问题 到目前为止 我遇到了很多错误 这是我的代码 int id 1 var query database Posts Join database Post Metas post gt d
  • Twisted Python 失败 - Scrapy 问题

    我正在尝试使用 SCRAPY 来抓取该网站的任何搜索查询的搜索结果 http www bewakoof com 该网站使用AJAX 以XHR的形式 来显示搜索结果 我设法跟踪 XHR 您会在我的代码中注意到它 如下所示 在 for 循环内
  • 无法加载 CIFAR-10 数据集:加载键“\x1f”无效

    我目前正在 TensorFlow 中尝试一些神经网络 我决定尝试使用 CIFAR 10 数据集 我从网站下载了 CIFAR 10 python 数据集 https www cs toronto edu kriz cifar html 在Py
  • Swift 在 0 和 1 之间随机浮动

    在 Swift 中 我试图获得 0 和 1 之间的随机浮点数 但我似乎无法让类型转换起作用 func randomCGFloat gt CGFloat return CGFloat arc4random UINT32 MAX 我收到 CGF
  • 从 zend 框架 url 中删除 index.php

    我正在使用 zend 框架开发一个模块 并且我已经使用 zf create project 创建了一个项目 命令 当我尝试使用访问网址时ip folder controller action当我尝试使用访问时 它给出错误未找到错误ip fo
  • Shenandoah 2.0 消除转发指针

    In Shenandoah 1 0每个对象都有一个额外的标头 称为forwarding pointer 为什么需要这样做以及导致其被消除的原因是什么Shenandoah 2 0 首先 每个 java 对象都有两个标头 klass and m
  • 在 jQuery 中,同时使用 resizing() 和draggable() 时如何修复包含错误? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 在 jQuery 中 同时使用 resizing 和d
  • R:如何根据列中的值添加行

    我有一个如下所示的数据框 line c 1 2 NA 4 5 NA 7 group c 1 0 Group A 2 0 Group B 3 0 Group C 4 0 Group D 5 0 Group E 6 0 Group F 7 0
  • simplexml 错误处理 php

    我正在使用以下代码 function GetTwitterAvatar username xml simplexml load file http twitter com users username xml imgurl xml gt p
  • shell中管道组件的执行顺序

    ls wc 按什么顺序ls and wc在这里执行 或者是 and wc只是论点ls 在表达式中ls wc 您的 shell 将大致执行以下操作 启动两个子 shell A 和 B A 的标准输出连接到 B 的标准输入 在子 shell A