【发布时间】:2015-12-30 18:46:03
【问题描述】:
在 Ubuntu 14.04 上,我有一些 Python 脚本需要在一系列输入上运行。其中一些可以并行运行,因此我从 bash 脚本(如下)将它们作为后台进程启动。
for m in `seq 3 7`;
do
python script_1.py $m
for a in `seq 1 10 201`;
do
for b in `seq 0 9`;
do
t=$(($a + $b))
python script_2.py $m $t &
done
wait
done
done
所以我想以 10 个批次运行 Python 脚本,然后等到整个批次完成后再继续下一批 10 个,因此使用了wait 命令。
但是,我发现当我运行这个 bash 脚本时,script_2.py 在前 20 个输入值上运行,而不仅仅是前 10 个,作为后台进程。此外,在第一批 20 个之后,脚本会继续按需要执行,分批 10 个。是否有明显的原因导致这种情况发生,我该如何防止它发生?
干杯!
【问题讨论】:
-
在 OSX 上运行良好。你真的在你的shebang中使用
bash吗?
标签: bash for-loop ubuntu-14.04 background-process