从 bash 代码
command1 | tee >(command2) | command3
我想捕获in的输出和command2
invar2
的输出。command3
var3
command1
是 I/O 绑定的,其他命令成本很高,但可以在command1
完成之前开始工作。
command2
和的输出顺序command3
不固定。所以我尝试在
read -r var2 <<< var3=(command1 | tee >(command2 >&3) | command3) 3>&1
或者
{read -u 3 -r var2; read -r var3} <<< command1 | tee >(command2 >&3) | command3
但没有成功。
有没有办法让三个命令并行运行,将结果存储在不同的变量中而不是制作临时文件?