我目前正在尝试在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
test3set matchList [list [foreach elem $matchList { puts $elem } ] test3]将第三个元素设置为空字符串,'test3‘是第四个元素
$ ./tmp.expect
test1
test2
test3set matchList [list [foreach elem $matchList { puts $elem } ]test3]通过删除foreach块后的空格,列表被正确填充。然而,做这样一个简单的任务似乎有点过分。
$ ./tmp.expect
test1
test2
test3有谁知道如何正确地将一个元素的列表元素填充到一个expect脚本中?
发布于 2021-03-31 12:37:24
在Tcl中将元素添加到列表末尾的正确方法是使用lappend;第一个参数是包含列表的变量的名称,第二个和随后的参数是要追加的值:
lappend matchList test3即使值中嵌入了元字符,这也是可行的。
https://stackoverflow.com/questions/66887267
复制相似问题