繁体   English   中英

如何捕获在一个perl脚本中调用另一个perl脚本的捕获的退出状态,如果失败,它应该死亡

[英]how to capture the exit status of capture calling another perl script within a perl script and if it fails it should die

我刚刚开始在安全CRT上使用Perl 5.26,并且编写了一个Perl脚本来捕获调用多个Perl脚本的情况。

 my @secondCommand = capture("perl clientquery.pl -r $cid -l test.log -is $sqlFile");

我想知道如何捕获每个捕获调用的退出状态,如果失败,如何使原始脚本死亡。

IPC :: System :: Simple提供$EXITVAL ,它捕获通过capture和其他功能运行的命令的退出代码。

IPC :: System :: Simple执行的任何命令的退出值始终可以从$IPC::System::Simple::EXITVAL变量中检索:

当检查捕获的结果时,此功能特别有用,该捕获会从命令中返回捕获的文本。

 use IPC::System::Simple qw(capture $EXITVAL EXIT_ANY); my @enemies_defeated = capture(EXIT_ANY, "defeat_evil", "/dev/mordor"); print "Program exited with value $EXITVAL\\n"; 

如果命令未正常退出(例如,被信号终止)或未启动,则$EXITVAL将设置为-1。 在这种情况下,也会引发异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM