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