【发布时间】:2021-06-27 10:24:30
【问题描述】:
我目前正在尝试在期望脚本中创建一个列表并稍后填充它
我可以如下声明和初始化列表
#!/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 块之后的空格,列表被正确填充。但是,做这么简单的任务似乎有点矫枉过正。
$ ./tmp.expect
test1
test2
test3
有人知道如何正确地将列表元素逐个元素填充到期望脚本中吗?
【问题讨论】:
-
看看
lappend命令。 -
非常感谢,确实效果很好。您应该添加一个答案,以便我接受它
-
不是此任务的合适答案,但是当您需要将列表扩展为单个元素时,请使用 the
{*}syntax --set matchList [list {*}$matchList test3]-- 但当然,请在此处使用lappend。 -
期望使用 Tcl。你需要先学习 Tcl。 tcl.tk/doc
标签: list automation scripting tcl expect