您好我正在使用一个使用rcS脚本启动的模拟器,这是我的脚本
cd /tests
./test1 &
./test2 &
./test3 &
./test4
exit
我想要的是同时运行所有测试,并且只有在完成所有先前的测试后才执行exit命令。而且不仅在测试4完成时,这可能吗? 谢谢。
答案 0 :(得分:8)
您可以使用wait:
./test1 &
./test2 &
./test3 &
./test4 &
wait
来自bash手册页:
等等[n ...] 等待每个指定的进程并返回它 终止状态。每个n可以是a 进程ID或作业规范;如果 给出了工作规范,所有流程都在 那个工作的管道都在等待。 如果没有给出n, 等待所有当前活动的子进程,并且 返回状态为零。如果是 指定不存在的进程或 工作,返回状态是127。 否则,返回状态为 退出状态的最后一个 过程或工作等待。
答案 1 :(得分:5)
xargs
可以支持并行
就像这样:
seq 4|xargs -i -n 1 -P 4 ./test{}
答案 2 :(得分:4)
的内容
cd /tests
./test1 &
./test2 &
./test3 &
./test4 &
wait
exit
(我假设是bash shell)