Perlは、入力と出力の両方で実行されるコマンドパイプを開くことができません。これにより、送信のジョブIDが失われるため、qsubを介してSGEに送信するときに問題が発生します。生成されたスクリプトをSGEに送信し、 SGEが割り当てたジョブIDをキャプチャするにはどうすればよいですか?
1611 次
1 に答える
5
これはPerlのFAQです:コマンドとの間の両方でパイプを開くにはどうすればよいですか?(短い答え:を参照IPC::Open2
)
もう1つのアプローチは、シェルのI / Oリダイレクト機能を使用して、外部プログラムの出力をキャプチャすることです。
open my $qsub_proc, '|-', "qsub $command $args > some/file";
print {$qsub_proc} $the_input_to_the_command;
close $qsub_proc;
open my $qsub_fh, '<', 'some/file';
my @qsub_output = <$qsub_fh>;
... # now parse @qsub_output to get your job id
于 2011-04-26T20:05:50.740 に答える