2013-08-26 106 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.

相關問題