Есть ли эквивалент в 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.