我的perl脚本需要等到另一个脚本完成其工作

时间:2014-05-08 11:37:51

标签: perl shell unix hyperic

我是脚本语言的新手,我想问一个简单的问题。

#!/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 个答案:

答案 0 :(得分:0)

尝试使用Perl调试器来解决它。它易于使用,只需运行:

perl -d yourscript

它将开始。然后,您可以使用以下命令:

n - 运行下一个声明

l - 列出perl脚本

p var - 打印一些变量

s - 进入函数(而不是执行整个函数)

b 16 - 在第16行设置断点

r - 运行到下一个断点或结束

q - 退出