使用Perl的qx访问通过rsh运行远程命令的退出代码

时间:2019-06-26 08:31:41

标签: perl return-value exit-code rsh

我正在使用qx()通过rsh在远程Windows计算机上运行命令。我需要访问远程命令的退出代码。我按照此处的说明“ Get return code and output from command in Perl”进行操作,但是使用$?始终返回0-好像它是rsh命令的退出代码,而不是通过rsh运行的命令。

但是,当我使用ssh时,$?实际上会返回通过ssh运行的命令的退出代码。

那么,如何使用qx访问远程Windows计算机上通过rsh运行的命令的返回值?

qx(rsh -l $username $host perl a.pl);     # say I run a perl script on remote machine 
my $returnValue =                         # need the return value of 'perl a.pl' here

1 个答案:

答案 0 :(得分:1)

这是一种解决方法(在无法使用ssh的情况下),将退出代码保存在临时文件中:

my $output = qx(rsh -l $username $host "perl a.pl; echo \\\$? > exitcode.txt");
my $exitcode = qx(rsh -l $username $host "cat exitcode.txt");