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