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 に答える