在TCL中将一个变量的值赋给另一个变量

在TCL中将一个变量的值赋给另一个变量,tcl,Tcl,我的脚本中有以下代码片段: 设置行[get stdin] 设置$line1$line 错了吗? 我基本上想把变量line的值复制到line1。这给了我一个错误: can't read "line1": no such variable while executing "set $line1 $line" 在tcl中,在变量前面加上$,将该变量替换为其值。因此,正确的语法是: set line1 $line 这与C中的*的语义几乎相同:在C中为指针加上前缀*会将指针解引用到其值。set$lin

我的脚本中有以下代码片段:

设置行[get stdin]

设置$line1$line

错了吗? 我基本上想把变量
line
的值复制到
line1
。这给了我一个错误:

can't read "line1": no such variable
while executing
"set $line1 $line"

在tcl中,在变量前面加上
$
,将该变量替换为其值。因此,正确的语法是:

set line1 $line

这与C中的
*
的语义几乎相同:在C中为指针加上前缀
*
会将指针解引用到其值。

set$line1$line的用法是
line1
变量包含另一个变量的名称。这通常是无法维护代码的标志;有更清晰的方法(数组和/或
upvar
是最常见的方法)。