【问题标题】:How to access buffer contents of Expect module in perl如何在 perl 中访问 Expect 模块的缓冲区内容
【发布时间】:2012-04-16 21:50:53
【问题描述】:

我正在使用 expect 来自动化基于终端的应用程序。我将根据“expect”命令的结果发送数据。我知道期望,在进行字符串匹配时,会将所有不匹配的字符串模式存储在缓冲区中。例如$expect_out(0,string) 用于存储expect 实际等待的字符串,而$expect_out(buffer) 包含直到上一条命令出现的所有不匹配的字符串模式。

我想知道是否有任何方法可以访问这些期望缓冲区,例如将期望缓冲区内容复制到某个变量中,如下所示

$mybuffer = $expect_out(buffer);

但上面的语句实际上是在 perl_app_hh.pl line 72, near "$expect_out(""

我只想将期望缓冲区的内容复制到一个变量。所以请在这个问题上帮助我。

【问题讨论】:

  • 以上所有东西都应该使用来自cpan的perl的expect模块。
  • $expect_out(0,string)$expect_out(buffer) 不是有效的 perl 语法。您能否向我们展示您想要修改的现有代码?
  • print ("\n\n\n ******即将打印预期缓冲区内容...************\n\n\n \n"); #$mybuffer = $expect_out(buffer); print ("\n 期望的缓冲区内容是 ", $buffer, "\n"); print "$expect_out(0,string)";

标签: perl expect


【解决方案1】:

您将不得不阅读the documentation for the Expect module$expect(buffer) 不是有效的 Perl。

$exp = Expect->spawn(...);
$exp->send(...);
$buffer = $exp->before();

【讨论】:

    猜你喜欢
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    相关资源
    最近更新 更多