如何从循环内发出命令?

问题描述:

这是一个非常基本的问题。

我认为TCL是一个命令行生成器。其目的是为工具的命令行解释器生成字符串。例如,tcl命令:如何从循环内发出命令?

set alpha “run” 
$alpha 
$alpha 
$alpha 

导致“运行”命令被发送到该工具三次 - 这是有道理的。但是:

set alpha “run” 
for {set i 0} {$i<3} {incr i} $alpha 

没有。所以问题是:如何从循环内部向工具发送命令?

+0

风格点:写循环为'为{集合I 0} {$ I

这里是一个可能的方式(与输出):

% proc foo {count} { 
    puts "count = $count" 
} 
% set alpha foo 
foo 
% for {set i 0} {$i<3} {incr i} { 
    $alpha $i  
} 
count = 0 
count = 1 
count = 2 
% 
+0

在这里不需要使用eval,如果任何参数具有列表结构,实际上可能会破坏事情。 –

+0

@PeterLewerin同意。谢谢。更新了上面的代码片段。 – Sharad

你的问题很可能是与“搞笑语录”在该行

set alpha “run” 

TCL集团,这些报价都没有句法标记,只是文本。尝试

set alpha "run" 

,或者甚至更好,

set alpha run