同时运行多个Python脚本然后按顺序运行

man*_*ers 3 python bash scripting

我可以从这样的bash脚本同时运行多个Python脚本;

#!/bin/bash
python pr1.py & 
python pr2.py &
python aop.py &
python loader.py &
Run Code Online (Sandbox Code Playgroud)

但是如果我想要一个批次同时开火并且在它们运行之后,又开始更顺序地开始.这有用吗?:

#!/bin/bash
python pr1.py & 
python pr2.py &
python ap.py &
python loader.py
python cain.py
python able.py
Run Code Online (Sandbox Code Playgroud)

v.c*_*der 17

一旦你把它放在最后,它就作为后台进程运行.因此所有脚本以&结尾并行运行.

要按顺序运行其他3个脚本,您可以尝试两个:

&& 仅当前面的脚本成功运行时才运行下一个脚本

python loader.py && python cain.py && python able.py 
Run Code Online (Sandbox Code Playgroud)

|| 无论先前脚本的结果如何,都按顺序运行脚本

python loader.py || python cain.py || python able.py
Run Code Online (Sandbox Code Playgroud)

  • 如果你认为它解决了你的问题,你能接受答案吗 (2认同)

Car*_*nso 6

在你的bash脚本上你可以简单地添加如下wait命令:

#!/bin/bash
python pr1.py & 
python pr2.py &
python ap.py &
wait
python loader.py
python cain.py
python able.py
Run Code Online (Sandbox Code Playgroud)

wait 显然,等待所有的工作(你解雇的后台进程)要完成继续.