我想执行类似以下脚本的操作:
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]}")