【发布时间】: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)";