我试图通过一个简单的示例来了解 shell 脚本中的并行处理以及在输出中确定性地(无随机顺序)顺序附加值。下面是代码片段:
x=""
appendnum() {
num=$1; x=`echo $x$num`
}
for no in {0..10}
do
appendnum $no &
done
wait $(jobs -rp)
echo $x
预期的输出是 012345678910,但它会产生一个空值。我什至尝试迭代 PID 以等待它完成,但没有成功。我希望主线程等到每个并行进程完成。附加数字只是一个例子。
我的问题陈述如下所示:考虑到我有 3 个任务,我想要响应列表,例如[responseof(task1),responseof(task2),responseof(task3)]
. 任务数最多可达到 50 个。无论任务数如何,我的响应时间都应该相同。这样做的最有效和正确的方法是什么?