#Bash 的 coproc 命令
coproc [NAME] COMMAND
功能
创建一个协作进程。
异步执行
COMMAND,命令的标准输出和标准输入通过管道连接到数组变量${NAME}的索引 0 和 1 所对应的文件描述符
类型
Bash 内置命令(关键字)。
参数
NAME- 进程的名字;默认为"COPROC"COMMAND- 进程执行的命令
#示例
$ coproc bc # 创建进程,执行 bc(一个命令行计算器)
[1] 1047088
$ echo "2 + 3" >&"${COPROC[1]}" # 向标准输入写入 "2 + 3\n"
$ read VAL <&"${COPROC[0]}" # 从标准输出读取数据到变量 VAL 中
$ echo $VAL # 查看结果
5
$ exec {COPROC[1]}>&- # 关闭标准输入,使 bc 退出
$ jobs
[1]+ Done coproc COPROC bc
#手册
coproc: coproc [NAME] command [redirections]
Create a coprocess named NAME.
Execute COMMAND asynchronously, with the standard output and standard
input of the command connected via a pipe to file descriptors assigned
to indices 0 and 1 of an array variable NAME in the executing shell.
The default NAME is "COPROC".
Exit Status:
The coproc command returns an exit status of 0.