2013-08-26 73 views
4

我想用perl脚本弹出一个警告框。我正在使用exit 0成功终止shell脚本,并且exit 1在发生错误时终止shell脚本。我想要在perl脚本中捕获这个退出代码。取决于值0或1,我想分别弹出一个包含成功或失败消息的警告框。如何在perl脚本中捕获shell脚本的退出代码?

回答

8

您可以使用子错误变量$?检查另一个进程的退出代码。例如:

system("perl foo.pl"); 
my $exit_val = $? >> 8; # now contains the exit value of the perl script 

阅读documentation更多信息。

+0

我用你的方法,但它给127.但我我在我的shell脚本中使用0号出口。所以,我需要一个0而不是127. – Rahul

+0

@Rahul:'$?正如链接文档中所解释的,&127'会给你想要的。 – Zaid

+0

好吧,我得到了。现在我怎么能弹出perl脚本中的警告框或在perl中使用javascript。 – Rahul

6

如果退出0: - shell脚本返回0到perl脚本$?可变

但对于1号出口情况:-IT返回256所以需要由8 移位因此试试这个:

#!/usr/bin/perl 
print "pelr"; 
system("./shell.sh"); 
$p=$?>>8; 
print $p; 

注意 - 在shell脚本只是把出口0并运行,然后退出1。并且看到这个O/P

只需要注意,当在perl中使用system时,它会返回退出代码乘以256.所以,如果一个命令返回1,system(“command”)将返回256。得到真正的回报值,除以256.

相关问题