2016-03-29 6 views
5

Sbatch:入力引数として渡すのジョブ名は、私がSLURMでジョブを送信するには、次のスクリプトを持っている

#!/bin/sh 
#!/bin/bash 
#SBATCH -J $3 #job_name 
#SBATCH -n 1 #Number of processors 
#SBATCH -p CA 

nwchem $1 > $2 

最初の引数($ 1)私の入力、第二($ 2)私の出力であり、私はリクう3番目($ 3)は私の職業です。私がこれを好きなら、仕事の名前は「$ 3」です。ジョブ名をスクリプトの引数として与えるにはどうすればよいですか?

おかげ

答えて

5

SBATCHディレクティブは、シェルのコメントと見られて、それが$3に変数置換を行いません。

オプション1:アクションのいくつかのコースがあります

sbatch -J thejobname submission_script.sh input.data output.res 

オプション2:コマンドラインで-J引数を渡すことにより、位置などの引数($1$2を交換stdinを通じてスクリプトを渡します名前のもの)

IN=input.data OUT=output.res NAME=thejobname <submission_script.sh sbatch 

オプション3:ラッパーを書く

#!/bin/bash 
sbatch <<EOT 
#!/bin/sh 
#SBATCH -J $3 #job_name 
#SBATCH -n 1 #Number of processors 
#SBATCH -p CA 

nwchem $1 > $2 
EOT 

とこのようにそれを使用します。

submit.sh input.data output.red thejobname 

はまた、第二シェバング(#!/bin/bash)は役に立たないと(親)シェルによって無視されることに注意してください。

関連する問題