如何并行运行一系列命令,并将其输出存储在变量中?bash:在后台运行多个命令,在变量中存储输出
我已经试过:
output=`(echo -n "started "; sleep 2; echo "stopped") &`
echo "output before=$output"
wait
echo "output after=$output"
,得到了两秒钟的停顿,依次为:
output before=started stopped
output after=started stopped
我预计:
output before=
<2 seconds pause>
output after=started stopped
如何运行序列在后台命令,并将其输出存储在变量中?
'()'中的所有块都在背景上执行,所以一旦所有事情完成,您就会得到它的输出。因此,“睡眠”对你来说是“隐藏的”。 – fedorqui
你真的想做什么?这个例子看起来是为了说明一个问题,这可能不是解决你真正问题的最好方法。 – chepner
并行运行〜10个命令,等待终止,并分别处理其标准输出。 –