首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在sbatch命令行中传递参数?

如何在sbatch命令行中传递参数?
EN

Stack Overflow用户
提问于 2019-04-26 20:30:14
回答 1查看 4K关注 0票数 1

我想向sbatch命令行传递一个参数。

RHO_COR.sh

代码语言:javascript
复制
#!/bin/bash
#SBATCH -o job-%A_task.out
#SBATCH --job-name=paral_cor
#SBATCH --partition=normal
#SBATCH --time=1-00:00:00
#SBATCH --mem=200G
#SBATCH --cpus-per-task=16
#SBATCH --array=1-10

#Set up whatever package we need to run with

module load gcc/8.1.0 openblas/0.3.3 R

# SET UP DIRECTORIES

OUTPUT="$HOME"/PROJET_M2/data/$(date +"%Y%m%d")_parallel_nodes_test
mkdir -p "$OUTPUT"

export FILENAME="$HOME"/vipailler/PROJET_M2/bin/RHO_COR.R

subset=$((SLURM_ARRAY_TASK_ID))
file="$HOME"/PROJET_M2/raw/truelength2.prok2.uniref2.rares.tsv 

#Run the program

echo "Start job :"`date` >> "$OUTPUT"/"$SLURM_ARRAY_TASK_ID".txt
echo "Start job :"`date`

echo PWD $PWD

Rscript $FILENAME --file $file --subset $subset   > "$OUTPUT"/"$SLURM_ARRAY_TASK_ID"

wait


echo "Stop job : "`date` >> "$OUTPUT"/"$SLURM_ARRAY_TASK_ID".txt
echo "Stop job : "`date`

我使用以下命令执行此代码:

sbatch --partition normal --array 1-10 RHO_COR.sh

我想要得到的是在上面的命令行中使用file参数,它看起来像sbatch --partition normal --array 1-10 --file name_of_my_file RHO_COR.sh

我不想在Slurm代码中指定我的文件名,而是在sbatch命令行中指定,这样就永远不会更改这个Slurm代码。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-26 23:53:29

您可以在脚本后面传递一个参数,就像您直接在shell上运行它一样,如下所示:

代码语言:javascript
复制
sbatch --partition normal --array 1-10 RHO_COR.sh name_of_my_file

然后,该参数将作为$1在shell脚本中可用

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55867700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档