sbatch --array 命令中的值与作业任务 ID 不同,每个 运行 在不同的作业中

Values in a sbatch --array command different from the job task IDs, each of them run in a different job

是否可以在 sbatch --array 命令行中为脚本提供一些值不同于作业任务 ID,并且每个值都是 运行一份不同的工作?

sbatch --array=1-2 script.sh 4 6

其中 script.sh 为

#!/bin/bash

VALUE=$"$SLURM_ARRAY_TASK_ID"

echo $VALUE

然后,在他们 运行、

cat slurm*

returns

1
2

但我想知道是否有可能使 2 个作业 return 而不是 sbatch --array 命令中输入的“4 6”值,一个一个:

4
6

您可以使用 indirect variable expansion:

#!/bin/bash

VALUE=${!SLURM_ARRAY_TASK_ID}

echo $VALUE

注意感叹号。之后

sbatch --array=1-2 script.sh 4 6

您应该有两个输出文件,一个带有 4,一个带有 6