2017-08-09 6 views
1

私はRスクリプトで読むことができる様々なパラメータでSLURM sbatchコマンドを実行しようとしています。 PBSシステムを使用しているときは、qsub -v param1=x,param2=y(+その他のシステムパラメータ(PBSなどで読み取られるメモリの要件やスクリプト名など)を書いていました)、Rスクリプトでx = Sys.getenv(‘param1’)と読んでいます。SLURMバッチコマンドライン引数をRに渡す

#!/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:

は今、私はrun.shで

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

をしようとしたスクリプトが実行されているが、引数の値がに割り当てられていない

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

print(base.path) 

base.path変数(空文字列を出力します)。

+0

それはこのようにする必要があります'print 'の出力が' '[1]''で始まり、パスにエスケープ文字( '' \\ "' '' \ "')を残します。 –

答えて

4

エクスポートパラメータは、sbatchにrun.shスクリプトではなく、渡さなければなりません。私はちょうどそれは無関係だ場合ので、私を許しRについて知っていますが、スクリプトの出力を取得している場合は、代わりに `` cat`を試してみたいことがあり

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