6

我想使用 perl 脚本弹出一个警告框。我正在使用 exit 0 成功 exit 1 终止 shell 脚本并在发生错误时终止 shell 脚本。我想在 perl 脚本中捕获这个退出代码。根据值 0 或 1,我想分别弹出一个带有成功或失败消息的警报框。

4

2 回答 2

9

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

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

阅读文档以获取更多信息。

于 2013-08-26T09:06:37.747 回答
7

在退出 0 的情况下:- shell 脚本返回 0 到 perl 脚本 $? 多变的

但是对于退出 1 的情况:-它返回 256 所以需要移动 8 因此试试这个:

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

注意-在 shell 脚本中只需输入 exit 0 并运行然后退出 1。然后查看 o/p

请注意,在 perl 中使用 system 时,它返回退出代码乘以 256。因此,如果命令返回 1,system("command") 将返回 256。因此,要获得真正的返回值,请除以 256。

于 2013-08-26T12:24:14.650 回答