当我在集群上启动计算时,我通常会有一个单独的程序在最后进行后处理:
sbatch simulation
sbatch --dependency=afterok:JOBIDHERE postprocessing
我想避免错误输入并自动插入好的作业ID。任何的想法?感谢
答案 0 :(得分:26)
您可以这样做:
RES=$(sbatch simulation) && sbatch --dependency=afterok:${RES##* } postprocessing
RES
变量将保存sbatch
命令的结果,类似于Submitted batch job 102045
。构造${RES##* }
隔离最后一个单词(参见更多信息here),在当前情况下是作业ID。 &&
部分确保您在第一次提交失败时不尝试提交第二个作业。