我正在使用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
答案 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");