使用TCL在新行中连接变量

时间:2017-09-18 10:23:07

标签: tcl concatenation newline string-concatenation

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

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"] 

但它们都不起作用;我收到同一行的消息

1 个答案:

答案 0 :(得分:1)

concat命令会在其参数之间删除空格,因此在此处使用它并不多。你可能想要的是join命令。由于您使用的是非标准命令,我无法重新创建您的案例,但请说foo是一个返回字符串列表的命令:

join [foo] \n

返回一个字符串,该字符串由foo返回的字符串组成,每个字符串对都有换行符。

如果您在名为bar的变量中包含字符串列表,那么这当然也有效:

join $bar \n

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

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

文档: concatjoin