2017-08-09 106 views
1

我試圖運行帶有各種參數的SLURM sbatch命令,這些參數可以在R腳本中讀取。當使用PBS系統時,我曾經寫過qsub -v param1=x,param2=y(+其他系統參數,如內存要求等,以及由PBS讀取的腳本名稱),然後在R腳本中用x = Sys.getenv(‘param1’)讀取它。將SLURM批處理命令行參數傳遞給R

現在我試圖

sbatch run.sh --export=basePath=‘a’ 

隨着run.sh:

#!/bin/bash 

cd $SLURM_SUBMIT_DIR 
echo $PWD 

module load R/common/3.3.3 

R CMD BATCH --quiet --no-restore --no-save runDo.R output.txt 

而且runDo.R:

base.path = Sys.getenv('basePath') 

print(base.path) 

腳本正在運行,但參數值不分配給base.path變量(它打印一個空字符串)。

+0

我只知道關於R所以請原諒我,如果它是不相關的,但如果你得到腳本的輸出,你可以試試'cat'而不是' print'作爲'print'的輸出將以'「[1]」開始,並且將在路徑中保留轉義字符('「\\」'爲'「\」')。 –

回答

4

export參數必須傳遞給sbatch而不是run.sh腳本。

它應該是這樣的:

sbatch --export=basePath=‘a’ run.sh 
相關問題