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

Accessing exit code of running a remote command through rsh, using Perl's qx

我正在通过 rsh 使用 qx() 运行 远程 windows 机器上的命令。我需要访问远程命令的退出代码。我按照这里的说明“”,但是使用 $? 总是 returns 0 - 看起来它是 rsh 命令的退出代码而不是命令 运行 通过rsh.

然而,当我使用 ssh 时,$? 实际上 return 是命令 运行 到 ssh 的退出代码。

那么,如何使用 qx 在远程 windows 机器上通过 rsh 访问命令 运行 的 return 值?

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

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

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