如何查看多个bg进程的输出?

如何查看多个bg进程的输出?

这是。但由于它们没有关系,所以我又提出了另一个问题。

因此,在这种情况下,我运行多个后台进程以加快程序执行时间。这很有效。整个执行的 CPU 时间现在已降至最低值。

但我希望看到一些来自后台进程的输出。主脚本目前正在运行的是这样的。

#!/bin/bash
total_procs=10
for ((i=0;i<$total_procs;i++)); do
    echo "[MASTER]: Spawning child ${i}."
    bash _spawn.sh ${i} &
done
wait #for the processes to end

为了简单起见,我们只能这样说_spawn.sh脚本做了一些简单的事情,例如:

#!/bin/bash
my_arg=${1}
echo "[${my_arg}     ]: Hi, I am child #${my_arg}!

主脚本被调用的终端上的输出现在如下所示:

[MASTER]: Spawning child 0.
[MASTER]: Spawning child 1.
[MASTER]: Spawning child 2.
[MASTER]: Spawning child 3.
[MASTER]: Spawning child 4.
[MASTER]: Spawning child 5.
[MASTER]: Spawning child 6.
[MASTER]: Spawning child 7.
[MASTER]: Spawning child 8.
[MASTER]: Spawning child 9.

但是,我希望看到的是这样的(尽管“并行”过程在后台):

[MASTER]: Spawning child 0.
[0     ]: Hi, I am child #0!
[MASTER]: Spawning child 1.
[1     ]: Hi, I am child #1!
[MASTER]: Spawning child 2.
[2     ]: Hi, I am child #2!
[MASTER]: Spawning child 3.
[3     ]: Hi, I am child #3!
[MASTER]: Spawning child 4.
[4     ]: Hi, I am child #4!
[MASTER]: Spawning child 5.
[5     ]: Hi, I am child #5!
[MASTER]: Spawning child 6.
[6     ]: Hi, I am child #6!
[MASTER]: Spawning child 7.
[7     ]: Hi, I am child #7!
[MASTER]: Spawning child 8.
[8     ]: Hi, I am child #8!
[MASTER]: Spawning child 9.
[9     ]: Hi, I am child #9!

有办法实现这个吗?

相关内容