私は一連のジョブをSGEに提出しようとしています(FWIW、一連のGromacs分子動力学シミュレーションです)。input01
,input02
などの接尾辞を除いてすべてのジョブが同じです。接尾辞が一連のコマンドによって適切に処理されるように実行するコマンドを書いた。Sun Grid Engineに環境変数を正しく渡す方法は?
しかし、私はexec環境にその変数を受け取る方法を見つけることができません。 qsub
のマニュアルページによれば、-v var
がそれを行う必要があります。 (上記export
コマンドと同じセッションで)次のように
if [ "x" == "x$i" ]; then
echo "ERROR: \$i not set"
else
echo "SUCCESS: \$i is set"
fi
私は仕事を提出:
$ export i=19
$ export | grep ' i='
declare -x i="19"
$ env | grep '^i='
i=19
はその後、私はそれを受け取っていますかどうかを確認するために、次のスクリプト(run.sh
)を提出
$ qsub -N "test_env" -cwd -v i run.sh
Your job 4606 ("test_env") has been submitted
エラーストリームが空で、出力ストリームがあります
$ cat test_env.o4606
ERROR: $i not set
は私も失敗し、次のコマンドを試してみました:
$ qsub -N "test_env" -cwd -v i -V run.sh
$ qsub -N "test_env" -cwd -V run.sh
$ qsub -N "test_env" -cwd -v i=19 -V run.sh
$ qsub -N "test_env" -cwd -v i=19 run.sh
私はrun.sh
の先頭に行i=19
を追加した場合、出力は次のようになります。私は今、生成検討している
$ cat test_env.o4613
SUCCESS: $i is set as 19
ジョブごとに1つのファイルがありますが、基本的には同じですが、最初にi=xx
行があります。それはあまり実用的に見えませんが、解決策になります。
もっと良い解決策がありますか?
'qsubの-N「test_env」-cwd -v =「$ i」の実行を.sh'はうまくいくはずです。 –