Доступ к коду завершения запуска удаленной команды через rsh с использованием Perl qx - PullRequest
0 голосов
/ 26 июня 2019

Я использую qx () для запуска команды на удаленной машине с Windows через rsh.Мне нужно получить доступ к коду выхода удаленной команды.Я следовал приведенным здесь инструкциям " Получить код возврата и вывод команды из Perl ", но использование $? всегда возвращает 0 - похоже, что это код завершения команды rsh вместо команды, запускаемой через rsh.

Однако, когда я использую ssh, $? фактически возвращает код завершения команды, проходящей через ssh.

Итак, как я могу получить доступ к возвращаемому значению команды, выполняемой через rsh, на удаленной машине Windows с помощью qx?

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 Ответ

1 голос
/ 26 июня 2019

Вот обходной путь (в случае, если вы не можете использовать ssh), который сохраняет код завершения во временном файле:

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