期望脚本创建列表并附加到它
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
但是我找不到将新字符串正确附加到列表的方法
我试过几种语法都找不到合适的方法
set matchList [list $matchList test3]
认为 'test1 test2' 是第一个元素,'test3' 第二个
$ ./tmp.expect
test1 test2
test3
set matchList [list [foreach elem $matchList { puts $elem } ] test3]
将第三个元素设置为空字符串,'test3'为第四个元素
$ ./tmp.expect
test1
test2
test3
set matchList [list [foreach elem $matchList { puts $elem } ]test3]
通过删除 foreach
块之后的 space 列表被正确填充。然而,做这么简单的任务似乎有点过分了。
$ ./tmp.expect
test1
test2
test3
有人知道如何正确地将列表元素逐个填充到 expect 脚本中吗?
在 Tcl 中将元素添加到列表末尾的正确方法是使用 lappend
;第一个参数是包含列表的变量的名称,第二个和后续参数是要追加的值:
lappend matchList test3
即使在值中嵌入了元字符时也能正常工作。
我目前正在尝试将列表创建到 expect 脚本中并稍后填充它
我可以如下声明和初始化列表
#!/usr/bin/expect
set matchList [list test1 test2]
foreach elem $matchList {
puts $elem
}
结果如下
$ ./tmp.expect
test1
test2
但是我找不到将新字符串正确附加到列表的方法
我试过几种语法都找不到合适的方法
set matchList [list $matchList test3]
认为 'test1 test2' 是第一个元素,'test3' 第二个
$ ./tmp.expect
test1 test2
test3
set matchList [list [foreach elem $matchList { puts $elem } ] test3]
将第三个元素设置为空字符串,'test3'为第四个元素
$ ./tmp.expect
test1
test2
test3
set matchList [list [foreach elem $matchList { puts $elem } ]test3]
通过删除 foreach
块之后的 space 列表被正确填充。然而,做这么简单的任务似乎有点过分了。
$ ./tmp.expect
test1
test2
test3
有人知道如何正确地将列表元素逐个填充到 expect 脚本中吗?
在 Tcl 中将元素添加到列表末尾的正确方法是使用 lappend
;第一个参数是包含列表的变量的名称,第二个和后续参数是要追加的值:
lappend matchList test3
即使在值中嵌入了元字符时也能正常工作。