首页 > 解决方案 > 如何从 bash 脚本中获取 perl 退出值

问题描述

我正在尝试通过 bash 运行 perl 脚本,并获取 perl 的退出值。

perl_script.pl

print "test1";
sub a{
  my @array = ("a","b");
  if ($#array ne -1){
   return 1;
  }
  else {return 0;}
}
my $result=a(arg1,arg2);
exit $result;

bash.sh

VARIABLE_1=$("perl_script.pl" arg1 arg2)
RESULT=$? 

“$?” 无论退出值是什么,变量都保持返回 0。你知道另一种从 bash 中检索 perl 退出值的方法吗?

提前致谢!

标签: bashperlperlscript

解决方案


bash$?将设置为传递给exit[1]的值。

$ perl -e'exit 3'

$ echo $?
3

$ perl -e'exit 4'

$ echo $?
4

$ perl perl_script.pl
test1
$ echo $?
1

  1. 如果程序死于异常,退出代码将设置为非零值。如果程序既没有终止也没有调用exit,退出代码将设置为零。

推荐阅读