从bash脚本获取perl脚本的输出并退出

从bash脚本获取perl脚本的输出并退出,perl,bash,Perl,Bash,从bash脚本中,如何执行perl脚本以获得输出并在值为=0时退出? 在perl脚本中,如何返回值,是直接返回还是打印 #!/bin/bash perl-script args && exit #!/bin/bash perl脚本args&&exit 如果要继续运行,返回值以$为单位 请注意,perl脚本返回的值与脚本的输出之间存在区别。要获取脚本的输出,请使用$()运算符: #!/bin/bash output=$(perl-script args) echo The perl scrip

从bash脚本中,如何执行perl脚本以获得输出并在值为=0时退出? 在perl脚本中,如何返回值,是直接返回还是打印

#!/bin/bash perl-script args && exit #!/bin/bash perl脚本args&&exit 如果要继续运行,返回值以$为单位

请注意,perl脚本返回的值与脚本的输出之间存在区别。要获取脚本的输出,请使用$()运算符:

#!/bin/bash output=$(perl-script args) echo The perl script returned $? echo The output of the script was $output #!/bin/bash 输出=$(perl脚本参数) 回显返回的perl脚本$? echo脚本的输出为$output
要获取返回代码,请使用退出功能。例如:

Perl脚本:

if ($success) {
    $return_value = 0;
} else {
    $return_value = 1;
}
exit($return_value);
Bash脚本:

perl scriptname args > outfile && exit

这是假设如果Perl脚本的返回值为0,并且希望将Perl脚本的输出保存在
outfile
中,则希望退出。如果返回值不是零,则它存储在
$?
中,如果您愿意,可以将该值保存到变量中。

您的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 $?"

1并不意味着成功返回值,顺便说一句,
退出1
需要分号。谢谢添加缺少的
和correct
1
显然并不意味着一个成功的值,它只是一个示例。从perl脚本中,我是否打印“0”或返回“0”,以及如何在$return中获取perl值_value@user这就是Perl脚本。使用
exit
函数从脚本返回一个值。您可以像通常在Perl中一样,将任何数字绑定到
$return\u value
。我在perl示例中添加了更多内容以澄清问题。实际上,如果返回的值不是0,我希望它继续运行在bash中添加&&exit时未找到I get:commandscript@user391986如果cmd返回零,“cmd&&exit”将退出,如果cmd返回任何其他值,它将继续运行。不确定为什么找不到命令。