“collect_exit_code”中是否存在Net :: SSH :: Expect 1.09中的等价物

时间:2012-09-04 20:49:37

标签: perl perl-module cgi-bin perlnetssh

我遇到了这个链接:Exit status code for Expect script called from Bash但它没有帮助我。当我想从远程运行命令获取退出状态代码时,我遇到了Net :: SSH :: Expect 0.08的cpan文档,其中包含“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 个答案:

答案 0 :(得分:0)

您是否尝试过调用基础期望对象?

$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... };

如果没有别的帮助你可以创建一个小的shell脚本来执行你的命令并在stderr上报告exitstatus。