Tcl 关于expect中的expect\u out(缓冲区)

Tcl 关于expect中的expect\u out(缓冲区),tcl,expect,Tcl,Expect,有人能解释这两者的区别吗 expect_out(buffer) expect_out(0,string) 通常我更喜欢使用expect\u out(缓冲区) 第二个是什么?我们什么时候可以使用它 谁能解释一下吗?您可能想看看: 我会引述有关部分: 匹配模式(或eof或完整缓冲区)后,任何匹配和以前不匹配的输出都保存在变量expect\u out(缓冲区)中。变量expect\u out(1,字符串)到expect\u out(9,字符串)中最多保存9个regexp子字符串匹配项。如果在模式之

有人能解释这两者的区别吗

expect_out(buffer)

expect_out(0,string)
通常我更喜欢使用
expect\u out(缓冲区)

第二个是什么?我们什么时候可以使用它


谁能解释一下吗?

您可能想看看:

我会引述有关部分:

匹配模式(或eof或完整缓冲区)后,任何匹配和以前不匹配的输出都保存在变量
expect\u out(缓冲区)
中。变量
expect\u out(1,字符串)
expect\u out(9,字符串)
中最多保存9个regexp子字符串匹配项。如果在模式之前使用了
-index
标志,则10个字符串的起始和结束索引(以适合
lrange
的形式)存储在变量
expect\u out(X,start)
expect\u out(X,end)
中,X是一个数字,对应于缓冲区中的子字符串位置。0引用与整个模式匹配的字符串,该字符串是为glob模式以及regexp模式生成的。例如,如果一个进程产生了
“abcdefgh\n”
的输出,则以下结果: expect "cd" expect -indices -re "b(b*).*(k+)"

就好像执行了以下语句: set expect_out(0,string) cd set expect_out(buffer) abcd set expect_out(0,start) 1 set expect_out(0,end) 10 set expect_out(0,string) bbbcabkkkk set expect_out(1,start) 2 set expect_out(1,end) 3 set expect_out(1,string) bb set expect_out(2,start) 10 set expect_out(2,end) 10 set expect_out(2,string) k set expect_out(buffer) abbbcabkkkk 将预期输出(0,开始)设置为1 将预期输出(0,结束)设置为10 设置expect_out(0,字符串)bbbcabkkk 设置期望输出(1,开始)2 设置期望值(1,结束)3 设置expect_out(1,字符串)bb 设置期望值(2,开始)10 设置期望值(2,结束)10 设置expect_out(2,字符串)k 设置expect_out(缓冲区)abbbcabkk

您可以看到
expect\u out(0,字符串)
expect\u out(缓冲区)
如何包含不同的字符串