0

我正在使用 qx() 通过 rsh 在远程 Windows 机器上运行命令。我需要访问远程命令的退出代码。我按照此处的说明“在 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
4

1 回答 1

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");
于 2019-06-26T12:27:11.327 回答