4

您好,我正在使用一个使用 rcS 脚本启动的模拟器,这是我的脚本

cd /tests
./test1 &
./test2 &
./test3 &
./test4 
exit

我想要的是同时运行所有测试,并且只有在所有先前的测试都完成后才执行退出命令。不仅当测试 4 完成时,这可能吗?谢谢你。

4

3 回答 3

8

您可以使用等待:

./test1 &
./test2 &
./test3 &
./test4 &
wait

从 bash 手册页:

wait [n ...] 等待每个指定进程并返回其终止状态。每个 n 可以是一个进程 ID 或一个作业规范;如果给出了作业规范,则等待该作业管道中的所有进程。如果没有给出n,则等待所有当前活动的子进程,返回状态为零。如果 n 指定一个不存在的进程或作业,则返回状态为 127。否则,返回状态为最后等待的进程或作业的退出状态。

于 2009-01-09T23:59:08.903 回答
5

xargs可以支持并行

所以就像这样:

seq 4|xargs -i -n 1 -P 4 ./test{} 
于 2011-08-22T09:16:15.317 回答
4

类似的东西

cd /tests
./test1 &
./test2 &
./test3 &
./test4 &
wait
exit

(我假设 bash shell)

于 2009-01-09T23:57:24.227 回答