0

私はスクリプト言語に慣れていないので、簡単な質問をしたいと思います。

#!/usr/bin/perl

my $process_id = shift;
execute();

sub execute() {
  system("cd", "bin");
  my $output = `pcp.sh -p $process_id`;
  if (index($output, "some string") != -1) {
    print("Information 1.0 :Standalone server works fine \n");
  }
  else {
    print("Information 2.0 Standalone server have some problems)\n");
  }
}

「pcp.sh」については、リンクをたどってください:

http://www.oracle.com/technetwork/systems/security/pcp-149863.txt

このスクリプトは端末で動作し、戻ります

Information 1.0 Standalone server works fine

しかし、私はスクリプトの監視を行っており、監視ツールは出力を戻り値として取得します。(それは非常に奇妙です。)スクリプトの実行中に監視ツールで次のように表示されます

Information 2.0 Standalone server have some problems

から出力を取得する必要がありますpcp.sh。コードのこのpcp.sh -p $process_id部分は約 1 分間実行されます。監視ツールは、おそらく 5 秒間実行されます。待たなければならないことは理解していますが、この仕事をどう処理したらよいかわかりません。

4

1 に答える 1