【发布时间】:2025-12-20 21:10:10
【问题描述】:
假设我在 txt 文件 (var.txt) 中有以下变量列表:
AAA
ABC
BBB
CCC
以下 R 脚本 (script.R),其中 x 是 var.txt 中的一个变量:
print(x)
以及以下 HPC slurm 作业脚本 (job.sh):
#!/bin/bash
#SBATCH --job-name test
#SBATCH --ntasks 8
#SBATCH --time 04:00
#SBATCH --output out
#SBATCH --error err
Rscript script.R
如何依次运行 job.sh 脚本 4 次,每次在 script.R 中使用不同的变量?
预期输出: 4 个带有脚本的 slurm 作业。R 打印 AAA、ABC、BBB 和 CCC。
感谢您的帮助
【问题讨论】:
-
我不知道 R,但假设它允许您在命令行上传递参数,例如
while read -r var; do Rscript script.R --variable="$var"; done <var.txt或更简洁的xargs -i -n 1 Rscript script.R --variable={} <var.txt -
谢谢,我认为这回答了一半的问题。最后一件事是我需要启动 4 个 job.sh,每个都有不同的 var
-
所以你不希望它们按顺序排列吗?对
slurm也不太熟悉,但您可以创建四个单独的临时文件,或者更理想的是让它从标准输入中读取您提交的内容。