【发布时间】:2013-08-28 17:13:34
【问题描述】:
我想使用 perl 脚本弹出一个警告框。我正在使用exit 0 成功终止shell 脚本,并在发生错误时使用exit 1 终止shell 脚本。我想在 perl 脚本中捕获这个退出代码。根据值 0 或 1,我想分别弹出一个带有成功或失败消息的警报框。
【问题讨论】:
我想使用 perl 脚本弹出一个警告框。我正在使用exit 0 成功终止shell 脚本,并在发生错误时使用exit 1 终止shell 脚本。我想在 perl 脚本中捕获这个退出代码。根据值 0 或 1,我想分别弹出一个带有成功或失败消息的警报框。
【问题讨论】:
您可以使用子错误变量$? 检查另一个进程的退出代码。例如:
system("perl foo.pl");
my $exit_val = $? >> 8; # now contains the exit value of the perl script
阅读documentation了解更多信息。
【讨论】:
$? & 127 会给你你想要的,如链接文档中所述。
如果退出 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。
【讨论】: