谁能解释两者之间的区别
expect_out(buffer)
expect_out(0,string)
一般来说,我更喜欢使用expect_out(buffer)
.
第二个是什么,我们什么时候可以使用它?
任何人都可以解释一下吗?
您可能想看一下手册页:
我将引用相关部分:
在匹配模式(或 eof 或 full_buffer)时,任何匹配的和以前不匹配的输出都保存在变量中
expect_out(buffer)
。最多 9 个正则表达式子字符串匹配通过 保存在变量expect_out(1,string)
中expect_out(9,string)
。如果在-indices
模式之前使用标志,则 10 个字符串的开始和结束索引(以适合的形式lrange
)存储在变量中expect_out(X,start)
,expect_out(X,end)
其中 X 是数字,对应于缓冲区中的子字符串位置。0 是指匹配整个模式的字符串,并为 glob 模式和正则表达式模式生成。例如,如果一个进程产生了 的输出"abcdefgh\n"
,则结果为:期待“CD”就好像执行了以下语句:
设置 expect_out(0,string) cd 设置 expect_out(buffer) abcd并
"efgh\n"
留在输出缓冲区中。如果一个进程产生了 output"abbbcabkkkka\n"
,结果是:期望 -indices -re "b(b*).*(k+)"就好像执行了以下语句:
设置 expect_out(0,start) 1 设置 expect_out(0,end) 10 设置 expect_out(0,string) bbbcabkkkk 设置 expect_out(1,start) 2 设置 expect_out(1,end) 3 设置 expect_out(1,string) bb 设置 expect_out(2,start) 10 设置 expect_out(2,end) 10 设置 expect_out(2,string) k 设置 expect_out(buffer) abbbcabkkkk
您可以看到如何包含不同expect_out(0,string)
的expect_out(buffer)
字符串。