我们刚刚切换到使用 SLURM,我想使用循环和sbatch
.以前,我可以使用变量作为输出文件名的一部分。我一直在尝试sbatch
使用--export
传递变量来执行此操作,但无法为 std 错误/输出文件名插入变量。我认为它适用于工作名称 ( -J
) 和--wrap
零件。
for i in *fastq.gz; do sbatch \
--export=i=$i --error='$i.eo%j' --output='$i.eo%j' \
-J trim_`basename ${i}` \
--wrap="fastq_trim_single.sh ${i}" \
; done
生成名称中带有 $i 的输出文件:$i.eo68065。可以做我想做的事吗?
注意:理想情况下,我想使用basename $i
而不是$i
输出文件名。
答案1
不确定这是否适合您的用例,但您是否考虑过使用作业数组?使用作业数组时,变量SLURM_ARRAY_TASK_ID
将被分配给作业数组的当前索引,您可以在--error
和--output
命令中使用该索引。
以下是一些有用的示例:https://slurm.schedmd.com/job_array.html