![如何使用 SLURM sbatch 的变量来设置输出/错误文件名?](https://linux22.com/image/128650/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20SLURM%20sbatch%20%E7%9A%84%E5%8F%98%E9%87%8F%E6%9D%A5%E8%AE%BE%E7%BD%AE%E8%BE%93%E5%87%BA%2F%E9%94%99%E8%AF%AF%E6%96%87%E4%BB%B6%E5%90%8D%EF%BC%9F.png)
我们刚刚切换到使用 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