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