我正在尝试编写一个同时运行许多程序的.sh文件
我试过这个
prog1
prog2
Run Code Online (Sandbox Code Playgroud)
但是运行prog1然后等到prog1结束然后开始prog2 ...
那我怎么能并行运行呢?
是否有一种简单的方法来限制bash中的并发作业数量?我的意思是当在后台运行多于n个并发作业时进行&阻止.
我知道我可以用ps实现这个 grep-style技巧,但有更简单的方法吗?
我有一个类似于以下的bash脚本:
NUM_PROCS=$1
NUM_ITERS=$2
for ((i=0; i<$NUM_ITERS; i++)); do
python foo.py $i arg2 &
done
Run Code Online (Sandbox Code Playgroud)
将并行进程数限制为NUM_PROCS的最简单方法是什么?我正在寻找一种不需要包/安装/模块(如GNU Parallel)的解决方案.
当我尝试Charles Duffy的最新方法时,我从bash -x得到以下错误:
+ python run.py args 1
+ python run.py ... 3
+ python run.py ... 4
+ python run.py ... 2
+ read -r line
+ python run.py ... 1
+ read -r line
+ python run.py ... 4
+ read -r line
+ python run.py ... 2
+ read -r line
+ python run.py ... 3
+ read -r line
+ …Run Code Online (Sandbox Code Playgroud)