获取作业 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::: final.sh
您可以将作业 ID 存储在变量中并将其用于下一个命令。像
jobs=$(seq 1 10 | awk '{ printf ":%s", }')
# \------/
# 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 的信息通过管道传递。
你好,对于一个项目我只需要在所有以前的 运行 都完成后才需要执行一个 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::: final.sh
您可以将作业 ID 存储在变量中并将其用于下一个命令。像
jobs=$(seq 1 10 | awk '{ printf ":%s", }')
# \------/
# 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 的信息通过管道传递。