在Tcl中用换行符连接字符串

在Tcl中用换行符连接字符串,tcl,Tcl,我无法连接tcl中有新行的字符串。新行将被忽略。有没有办法克服这个问题 % set pst_data "Power states :-\n" Power states :- % set pst_data [concat $pst_data "vcc1\t 1 0 1\n"] Power states :- vcc1 1 0 1 % set pst_data [concat $pst_data "vcc2\t 2 2 0\n"]

我无法连接tcl中有新行的字符串。新行将被忽略。有没有办法克服这个问题

% set pst_data "Power states :-\n"
Power states :-

% set pst_data [concat $pst_data "vcc1\t 1 0 1\n"]
Power states :- vcc1     1 0 1
% set pst_data [concat $pst_data "vcc2\t 2 2 0\n"]
Power states :- vcc1     1 0 1 vcc2      2 2 0
% 
我希望每次在下列文件中提及时,输出都以单独的新行出现

在修剪每个参数的前导和尾随空格后,此命令将其每个参数与空格连接在一起

您可以尝试改用:


当然,append是实现这一点的正确方法,但在Tcl中,您甚至可以这样做concat:

% set pst_data "Power states :-\n"
Power states :-

% set pst_data "${pst_data}vcc1\t 1 0 1\n"
Power states :-
vcc1     1 0 1

还可以执行
附加pst\U数据“vcc1\t 1 0 1”“\n”
,以便换行符分开。当字符串的其余部分来自变量时,这一点特别有用。手册还以“concat-join lists together”开头,如果没有列表,而是字符串,这应该是一个提示。而
append
是一个用于按片段构建类似字符串的命令,
stringcat
在8.6中也可用。Tcl中不仅有string类型,这就像说所有编程语言中只有1和0一样。Tcl不是类型化的,所以您可以向过程发送列表而不是浮点数,但这并不意味着您应该这样做
% set pst_data "Power states :-\n"
Power states :-

% set pst_data "${pst_data}vcc1\t 1 0 1\n"
Power states :-
vcc1     1 0 1