期望脚本创建列表并附加到它

Expect script create list and append to it

我目前正在尝试将列表创建到 expect 脚本中并稍后填充它

我可以如下声明和初始化列表

#!/usr/bin/expect

set matchList [list test1 test2]

foreach elem $matchList {
    puts $elem
}

结果如下

$ ./tmp.expect 
test1
test2

但是我找不到将新字符串正确附加到列表的方法

我试过几种语法都找不到合适的方法

认为 'test1 test2' 是第一个元素,'test3' 第二个

$ ./tmp.expect 
test1 test2
test3

将第三个元素设置为空字符串,'test3'为第四个元素

$ ./tmp.expect 
test1
test2

test3

通过删除 foreach 块之后的 space 列表被正确填充。然而,做这么简单的任务似乎有点过分了。

$ ./tmp.expect 
test1
test2
test3

有人知道如何正确地将列表元素逐个填充到 expect 脚本中吗?

在 Tcl 中将元素添加到列表末尾的正确方法是使用 lappend;第一个参数是包含列表的变量的名称,第二个和后续参数是要追加的值:

lappend matchList test3

即使在值中嵌入了元字符时也能正常工作。