- ベストアンサー
シェルスクリプトに引数を渡す方法?
次のようなシェルスクリプトを作り、バッチ処理で実行したいのですが、うまくいかず困っています。 %ls test.sh data %less test.sh #!/bin/sh calc.exe input=$1 コマンドから通常実行するときは、 % test.sh data でうまく行きます。 これを、qsubを使ったバッチ処理で実行しなければならなくて、 %qsub test.sh data とすると、qsubは引数を1つしか取れないので、構文エラーとなり、うまく入力引数"data"を渡せません。 %qsub "test.sh data" %qsub 'test.sh data' で、引数を1つにしようとしましたが、ダメでした。 引数ファイル名"data"は、名前が変わるので、できるだけ可変になるようにしたいです。 どなたか、解決法もしくは、参考URLなど教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2の方の回答の具体化ですが、 test.shを #!/bin/sh calc.exe input=$FILE に直して、 % env FILE=data qsub test.sh で。
その他の回答 (2)
- xanadou
- ベストアンサー率47% (10/21)
私が思いつく手っ取り早い方法は、test.shを以下のように改造することですね。 「dataを引数で受け取る」 ↓ 「dataを環境変数で受け取る」 どでしょ?
お礼
ご教示ありがとうございます。 すばらしいアイデアありがとうございます。No.3さんにもご教示頂き、環境変数を引き渡すオプションをつけて、 qsub -V test.sh とすることで、うまくいっているようです(計算中)。引数を直接取れるかどうかも、引き続き調べてみようと思います。どうもありがとうございました。
- Tacosan
- ベストアンサー率23% (3656/15482)
qsub の仕様がよくわからないんですが, 何らかの形で「標準入力から読ませる」ことはできないんでしょうか?
お礼
ご教示ありがとうございます。 環境変数については、 qsub -v オプションで渡すことができるようですが、 通常の引数については、まだ分かっていません。 マニュアルを探しているのですが、まだ分かりません。 PBS-Proについて、引き続き調べてみようと思います。
お礼
ご教示ありがとうございます。 具体例を示して頂いて本当に助かりました。No.2様のご教示だけでは、イメージがわきませんでした。おかげさまで、 環境変数を引き渡すオプションをつけて、 qsub -V test.sh とすることで、$FILEをうまく引き渡せて、うまくいっているようです(計算中)。qsubの仕様で、直接引数を渡せるかどうかも、引き続き調べてみようと思います。どうもありがとうございました。