从bash脚本如何执行perl脚本获取输出并在值为0时退出? 另外在perl脚本中我如何返回值,我只是返回它还是打印它?
答案 0 :(得分:5)
#!/bin/bash perl-script args && exit
如果要继续运行,返回值为$?
请注意,perl脚本返回的值与脚本的输出之间存在区别。要获取脚本的输出,请使用$()运算符:
#!/bin/bash output=$(perl-script args) echo The perl script returned $? echo The output of the script was $output
答案 1 :(得分:2)
要获取返回码,请使用exit
功能。例如:
Perl脚本:
if ($success) {
$return_value = 0;
} else {
$return_value = 1;
}
exit($return_value);
Bash脚本:
perl scriptname args > outfile && exit
假设您想要退出,如果Perl脚本的返回值为0,并且您希望在outfile
中保存Perl脚本的输出。如果返回值不为零,则将其存储在$?
中,如果您愿意,可以将该值保存到变量中。
答案 2 :(得分:1)
你的perl脚本:foo.pl
#!/usr/bin/perl
# do something and then
exit 1;
在你的bash脚本中foo.sh:
#!/bin/bash
# do something and then call perl script
perl foo.pl
# check return value using $?
echo "perl script returned $?"