首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

bash coproc和剩余的coproc输出

coproc 是 Bash 中的一个内置命令,用于创建一个协程进程

下面是一个简单的例子,展示了如何使用 coproc 和读取剩余的输出:

代码语言:javascript
复制
#!/bin/bash

# 创建一个协程进程,执行 "ping" 命令
coproc mycoproc { ping -c 4 www.google.com; }

# 读取协程进程的输出
while read -r line; do
  echo "Output: $line"
done <&"${mycoproc[0]}"

# 等待协程进程结束
wait $!

在这个例子中,我们创建了一个名为 mycoproc 的协程进程,执行了 ping 命令。然后,我们使用 read 命令从协程进程的标准输出中读取数据,并将其输出到终端。最后,我们等待协程进程结束。

注意,coproc 命令创建了两个文件描述符:${mycoproc[0]} 用于读取协程进程的标准输出,${mycoproc[1]} 用于写入协程进程的标准输入。在这个例子中,我们只需要读取输出,所以只使用了 ${mycoproc[0]}

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SHELL(bash)脚本编程三:重定向

引用 和许多编程语言一样,bash也支持字符的转义,用来改变字符的原有含义,使得一些元字符(如&)可以出现在命令中。.../bin/bash #多个重定向出现的顺序有时会影响结果 #标准输出和标准错误都重定向至文件file ls hello file >file 2>&1 #标准错误输出至终端,标准输出重定向至文件 ls...中有任何字符被引用(如前引用部分),delimiter是word去除引用后剩余的字符,并且here-document中的词都不会被shell解释。.../bin/bash #简单命令 #简单命令使用不能通过NAME指定协进程的名字 #此时进程的名字统一为:COPROC。...(也预示着同一时间只能有一个简单命令的协进程) coproc cat file #协进程PID echo $COPROC_PID #转移协进程的输出文件描述符到标准输入,并供cat命令使用: cat <

1.7K30
  • linux shell: 命令运行符号 terminated &的意义塈了解control operator指南

    /bin/bash lcd_test & 当时搞明白了意思,但现在又忘记了,赶紧补习一下在此做个记录: 根据stackoverflow上这个帖子《What does “&” at the end of...的回答(如下图红框标),命令以’&'结尾就是让命令以后台形式运行。 ?...说实话,要照answer所说执行man bash来找到这个手册上的说明真不容易,我没找到,不过我在gnu的官网的 bash参考手册中找到了官方说明:《Bash Reference Manual》 在...《3.2.5 Coprocesses》节(如下图),可知‘&’是一个 control operator,与coproc等价,用于在subshell中异步执行命令。...《Bash Reference Manual》是关于Bash很权威详尽的资料了,如果关于bash有什么不明白的,在这个文档中搜索到的都是最终答案。

    2.5K20

    SHELL(bash)脚本编程七:源码简析

    本文对bash的源码(版本:4.2.46(1)-release)进行简要分析。 数据结构 bash是用C语言写成的,其源码中只使用了少量的数据结构:数组,树,单向链表,双向链表和哈希表。...几乎所有的bash结构都是用这些基本结构实现的。 源码中最主要的结构都定义在根目录下头文件command.h中。...主要流程 以下所涉及文件如无特殊说明均处于bash源码的根目录下。 对于一行bash命令的执行流程分为两大步骤:解析和执行(注意和上一篇中的解析和执行的区别)。...解析的作用是获得用于执行的命令结构体:COMMAND *global_command 执行主要是针对特定类型的命令进行执行和结果处理。...,依据不同的参数初始化shell:shell_initialize ()初始化了shell变量和参数,run_startup_files ()执行需要的配置文件(/etc/profile和~/.bashrc

    1.9K41

    MobaXterm工具连接Linux服务器入门使用手册,国产化泰山服务器连接工具使用演示

    [root@taishan-kylinosv10-18 ~]# help GNU bash, 版本 4.2.46(2)-release (aarch64-koji-linux-gnu) 这些 shell...使用 `info bash' 来获得关于 shell 的更多一般性信息 使用 `man -k' 或 `info' 来获取不在列表中的命令的更多信息. 名称旁边的星号 (*) 意味着该命令被禁用....continue [n] coproc [名称] 命令 [重定向] declare [-aAfFgilrtux...[模式] unalias [-a] 名称 [名称 ...] unset [-f] [-v] [名称 ...] until 命令; do 命令; done variables - 一些 shell 变量的名称和...不带参数时, `alias' 以可重用的格式 `alias 名称=值'在标准输出设备上打印别名列表。 否则,对于每个给定值的名称定义一个别名。

    2.2K30

    Shell 主要逻辑源码级分析:SHELL 运行流程 (1)

    本文的局限:限于本人技术水平和时间,肯定有不少错误和遗漏的地方,在当时的源码注释的过程中,也确实会有一直都不理解和存疑的地方,还请指正。但总的来说,主要逻辑和流程还是可以理清的。...分析的版本:首先选用最常用的bash,然后版本是bash4.2-release bash代码简介:之前做过一个统计,shell源码大概有10万行,其中核心逻辑在1万多行,这也是分析的目标代码。...设置运行需要的全局变量的值(当前环境变量、shell的名称、启动时间、输入输出文件描述符、语言本地化的相关设置),处理参数和选项(即带有-c -s --debugger等参数和选项),设置参数和选项的值...*Coproc; } value; } COMMAND; 其中一个很关键的成员是联合union类型value,它指出了该命令的类型,也给出了保存命令具体内容的指针。...重要数据结构 BASH中主要通过变量上下文和变量两个结构体来描述一个变量结构。以下分别介绍。 变量上下文:上下文又可以理解为作用域,可以比照C语言中的函数作用域,全局作用域来理解。

    5.1K01

    bash 的变量和参数

    上面 $b 和 $c 的区别? 实际应用的角度来说,基本没区别,都是空值。...想想上面的空格 替换 bash 里面引用一个变量的过程称为 Variable Substitution,字面意思即为变量替换。和大多数的语言叫法不同,但实际用起来没啥区别。...转义,变量不会被替换 变量类型 这里当然不是说字符串、整形什么的,其实 bash 中的变量都可以理解为字符串。 bash 中有四种类型的变量,它们是环境变量、本地变量、位置变量和特殊变量。...见下方 $0 当前脚本的文件名 $* 和 $@ 的区别 echo $*; echo $@; # 没有双引号,两者一样,都以"$1" "$2" … "$n" 的形式输出所有参数 echo "$*"...; # 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数 echo "$@"; # 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数 退出与退出状态 请查看退出与退出状态

    1.1K30

    bash 的变量和参数

    上面 $b 和 $c 的区别? 实际应用的角度来说,基本没区别,都是空值。...想想上面的空格 替换 bash 里面引用一个变量的过程称为 Variable Substitution,字面意思即为变量替换。和大多数的语言叫法不同,但实际用起来没啥区别。...转义,变量不会被替换 变量类型 这里当然不是说字符串、整形什么的,其实 bash 中的变量都可以理解为字符串。 bash 中有四种类型的变量,它们是环境变量、本地变量、位置变量和特殊变量。...见下方 $0 当前脚本的文件名 $* 和 $@ 的区别 echo $*; echo $@; # 没有双引号,两者一样,都以"$1" "$2" … "$n" 的形式输出所有参数 echo "$*"...; # 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数 echo "$@"; # 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数 退出与退出状态 请查看退出与退出状态

    1.5K00

    Linux 下Python 脚本编写的奇技淫巧

    action 参数指定跟属性对应的处理逻辑,通常的值为 store , 被用来存储某个值或将多个参数值收集到一个列表中。 nargs 参数收集所有剩余的命令行参数到一个列表中。...通过重定向/管道/文件接受输入 在bash中编写pytohn脚本接收外部数据的方式,一般情况下,对于一般变量,我们用命令行变量的方式比较多(手动的处理 sys.argv ),对于文件内容或者bash命令输出直接通过脚本内部获取需要的数据...其实python 脚本也可以用其他方式来接收 传递给他的文件数据或者bash命令输出,包括将命令行的输出通过管道传递给该脚本、重定向文件到该脚本,或在命令行中传递一个文件名或文件名列表给该脚本。.../filein.py /etc/passwd 脚本输出 root:x:0:0:root:/root:/bin/bash 脚本输出 bin:x:1:1:bin:/bin:/sbin/nologin 脚本输出...因此,整合起来,如果我们要写一个打印多个文件输出的脚本,那么我们需要在输出中包含文件名和行号 >>> import fileinput >>> with fileinput.input("/etc/passwd

    1.6K30

    bash和shell的入门中

    start : 在某个程序停止后,重新启动他的 output stop : 停止目前屏幕的输出; susp : 送出一个 terminal stop 的讯号给正在 run 的程序。...若启用后,在讯息被输出前,会先显示讯息的原始内容; -x :预设不启用。若启用后,在指令被执行前,会显示指令内容(前面有 ++ 符号) -h :预设启用。与历史命令有关; -H :预设启用。...Ctrl + S 暂停屏幕的输出 Ctrl + Q 恢复屏幕的输出 Ctrl + U 在提示字符下,将整列命令删除 Ctrl + Z 『暂停』目前的命令 7.5 通配符与特殊符号 在 bash 的操作环境中还有一个非常有用的功能.../ 目录符号:路径分隔的符号 >,>> 数据流重导向:输出导向,分别是『取代』与『累加』 <,<< 数据流重导向:输入导向 (这两个留待下节介绍) '' 单引号,不具有变量置换的功能 ($ 变为纯文本)...您可以自由的转载和修改,但请务必注明文章来源和作者署名并说明文章非原创且不可用于商业目的。

    96220
    领券