首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >期望脚本创建列表并追加到其中

期望脚本创建列表并追加到其中
EN

Stack Overflow用户
提问于 2021-03-31 11:46:42
回答 1查看 580关注 0票数 0

我目前正在尝试在expect脚本中创建一个列表,然后再填充它。

我可以声明并初始化列表,如下所示

代码语言:javascript
运行
复制
#!/usr/bin/expect

set matchList [list test1 test2]

foreach elem $matchList {
    puts $elem
}

给出以下结果:

代码语言:javascript
运行
复制
$ ./tmp.expect 
test1
test2

但是,我无法找到将新字符串正确添加到列表中的方法

我尝试过几种语法,却找不到合适的方法。

  • set matchList [list $matchList test3]

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

代码语言:javascript
运行
复制
$ ./tmp.expect 
test1 test2
test3

  • set matchList [list [foreach elem $matchList { puts $elem } ] test3]

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

代码语言:javascript
运行
复制
$ ./tmp.expect 
test1
test2

test3

  • set matchList [list [foreach elem $matchList { puts $elem } ]test3]

通过删除foreach块后的空格,列表被正确填充。然而,做这样一个简单的任务似乎有点过分。

代码语言:javascript
运行
复制
$ ./tmp.expect 
test1
test2
test3

有谁知道如何正确地将一个元素的列表元素填充到一个expect脚本中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-31 12:37:24

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

代码语言:javascript
运行
复制
lappend matchList test3

即使值中嵌入了元字符,这也是可行的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66887267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档