如何在Perl中处理交互式命令?

时间:2013-06-07 11:16:18

标签: perl command-line

我有一个perl脚本调用一个命令,该命令在执行前要求确认。我如何在Perl中处理这个问题?

例如,在我的perl脚本中,我正在执行以下操作

`ssh myServer`;

在连接之前,我会收到提示,要求继续。我必须提供yes作为我的下一个命令。我怎样才能做到这一点?任何代码段都很有用。

2 个答案:

答案 0 :(得分:1)

如果您正在查看互动,可以在CPAN上使用Expect ...

"Expect is a generic tool for talking to processes that normally require
user interaction. This might be running an ftp client to grab a file,
telnetting to a router to grab statistics or reset an interface. Or, as in the
case of a place I recently administered, to start up a secure webserver without
having to be physically at the machine to enter the super secret password."

但是,还有其他(更好的)方法可以自动执行SSH登录。即使用ssh-keygen

答案 1 :(得分:0)

来自Net::SSH

<强>交互式 如果您以交互方式使用Net :: SSH :: Perl,则设置为true值。例如,这用于确定是否显示密码提示。它基本上与ssh配置中的BatchMode参数相反。

默认为false。