Linux 获取作业id并将其放入bash命令中

Linux 获取作业id并将其放入bash命令中,linux,bash,jobs,slurm,Linux,Bash,Jobs,Slurm,您好,对于projet,我只需要在所有以前的运行都已完成时执行bash文件,因此我使用: sbatch -d afterok:$JobID1:$JobID2:$JobIDN final.sh 为了运行JobIDN,我需要 for job in Job*.sh ; do sbatch $job; done 然后它打印所有的jobid 我只是想知道是否有人有一个命令来获取这些ID并将它们直接放到命令中: sbatch -d afterok:$JobID1:$JobID2:$JobIDN fi

您好,对于projet,我只需要在所有以前的运行都已完成时执行bash文件,因此我使用:

sbatch -d afterok:$JobID1:$JobID2:$JobIDN final.sh 
为了运行JobIDN,我需要

for job in Job*.sh ; do sbatch $job; done 
然后它打印所有的
jobid

我只是想知道是否有人有一个命令来获取这些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
命令将收集所有作业ID并将它们写入一行,以冒号分隔,而
xargs
将获取结果并将其插入到
{}
占位符中。有关作业ID的信息通过管道传递