Есть ли эквивалент в Net::SSH::Expect 1.09 для "collect_exit_code"

Я наткнулся на эту ссылку: Код состояния выхода для сценария Expect, вызванного из Bash, но он мне не помог. Когда я искал, чтобы получить код состояния выхода из команды, запускаемой удаленно, я наткнулся на документацию cpan для Net::SSH::Expect 0.08, которая имеет методы "collect_exit_code" и "last_exit_code", и это именно то, что я хотел бы использовать сегодня, однако, я не могу найти подходящую замену при запуске 1.09.

Я хотел бы сделать это простым, например:

$ssh_devel_exp->collect_exit_code(1);
$ssh_devel_exp->send("sudo make");
if ($ssh_devel_exp->last_exit_code()) { etc. and so forth... };

Но я не могу придумать простой способ получить статус выхода при запуске команды через Net Expect без методов, подобных этим.

Я не верю, что переключение на Fabric является ответом на этот вопрос; это приложение на Perl, и мне нужно придерживаться Perl.

Заранее спасибо.

1 ответ

Вы пытались вызвать базовый ожидаемый объект?

$ssh_devel_exp->{expect}->collect_exit_code(1);
$ssh_devel_exp->send("sudo make");
if ($ssh_devel_exp->{expect}->last_exit_code()) { etc. and so forth... };

если больше ничего не поможет, вы можете создать небольшой сценарий оболочки, который будет выполнять ваши команды и сообщать о выходе из ststrr.

Другие вопросы по тегам