bash coproc 子 shell 内的子父通信

bash coproc 子 shell 内的子父通信

我想执行类似以下脚本的操作:

coproc test { ls; }
base64 <&${test[0]} | wc -l

但它失败了,这与:

除了为执行命令和进程替换而创建的文件描述符之外,文件描述符在子 shell 中不可用。

解决这个问题的一种方法是:

coproc test { ls; }
out=$(cat<&${test[0]});
echo $out|base64| wc -l

有没有办法使用管道来实现相同的目的?

答案1

#!/bin/bash
coproc test (ls)
wc -l < <(base64 <&"${test[0]}")

相关内容