繁体   English   中英

获取 Job id 并将它们放入 bash 命令

[英]Get Job id and put them into a bash command

您好,对于一个项目,我需要仅在之前的所有运行完成后才执行 bash 文件,所以我使用:

sbatch -d afterok:$JobID1:$JobID2:$JobIDN final.sh 

为了运行我做的 JobIDN

for job in Job*.sh ; do sbatch $job; done 

然后它打印所有的jobIDs

我只是想知道是否有人有命令来获取这些 ID 并将它们直接放入命令中:

sbatch -d afterok:$JobID1:$JobID2:$JobIDN final.sh 

例子

for job in Job*.sh ; do sbatch $job; done 
1
2
3


sbatch -d afterok:$1:$2:$3 final.sh 

您可以将作业 ID 存储在变量中,并将其用于下一个命令。 就像是

jobs=$(seq 1 10 | awk '{ printf ":%s", $1 }')
     # \------/
 # your jobID printing function here

接着

sbatch -d afterok"$jobs" final.sh 

你可以用

for job in Job*.sh ; do sbatch --parsable $job; done | paste -s -d: | xargs -I{} sbatch --depedency afterok:{} final.sh

paste命令将收集所有作业 IDS 并将它们写在一行中,用冒号分隔,而xargs将获取结果并将其插入{}占位符。 有关作业 ID 的信息通过管道传递。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM