使用 TCL 在新行中连接变量

concat variables in new lines with TCL

我想连接一些基于字符串的变量,我希望每个变量都在一个新行中。但是,我找不到编写代码的正确方法。这是我试过的:

set mensaje "Error: esta atenuacion: $att dB\n"

gset listaMensajes  [concat [gget listaMensajes] "$mensaje"]

set mensaje "Error: esta atenuacion: $att dB\n"

gset listaMensajes  [concat [gget listaMensajes] "$mensaje"]

puts "[gget listaMensajes]" 

变量 $att 在代码的不同部分采用不同的值。

我也试过:

gset listaMensajes  [concat [gget listaMensajes] "\n" "$mensaje"] 

但其中 none 有效;我在同一行收到消息

concat命令去掉参数之间的空格,所以在这里用处不大。您可能需要的是 join 命令。由于您使用的是非标准命令,我无法重新创建您的案例,但可以说 foo 是一个 returns 字符串列表的命令:

join [foo] \n

returns 由 foo 返回的字符串组成的字符串,每个字符串对之间用换行符连接。

如果您在名为 bar:

的变量中有一个字符串列表,这当然也有效
join $bar \n

或者如果您在命令替换中构建列表:

join [list "foo bar" "baz qux"] \n

文档: concat, join