按顺序执行批处理作业
Execute batch jobs sequentially
我有一个看起来像这样的批处理作业
sbatch --wrap "perl test.pl file1 file2"
sbatch --wrap "perl test.pl file3 file4"
sbatch --wrap "perl test.pl file5 file6"
sbatch --wrap "perl test.pl file7 file8"
& 这个列表一直持续到
sbatch --wrap "perl test.pl file49 file50"
我怎样才能 运行 按顺序执行单个作业?
谢谢,
您必须使一个脚本依赖于前一个脚本的完成:
JOBID=$(sbatch --wrap "perl test.pl file1 file2" | awk '{print }')
for N in {3..49..2}
do
JOBID=$(sbatch -d afterok:$JOBID --wrap "perl test.pl file$N file$(($N+1))" | awk '{print }')
done
顺便说一句,评论中建议的 singleton
方法也是一个很好的方法,可以让您摆脱 JobID 管理的困扰。
我有一个看起来像这样的批处理作业
sbatch --wrap "perl test.pl file1 file2"
sbatch --wrap "perl test.pl file3 file4"
sbatch --wrap "perl test.pl file5 file6"
sbatch --wrap "perl test.pl file7 file8"
& 这个列表一直持续到
sbatch --wrap "perl test.pl file49 file50"
我怎样才能 运行 按顺序执行单个作业? 谢谢,
您必须使一个脚本依赖于前一个脚本的完成:
JOBID=$(sbatch --wrap "perl test.pl file1 file2" | awk '{print }')
for N in {3..49..2}
do
JOBID=$(sbatch -d afterok:$JOBID --wrap "perl test.pl file$N file$(($N+1))" | awk '{print }')
done
顺便说一句,评论中建议的 singleton
方法也是一个很好的方法,可以让您摆脱 JobID 管理的困扰。