如何从循环内发出命令?
问题描述:
这是一个非常基本的问题。
我认为TCL是一个命令行生成器。其目的是为工具的命令行解释器生成字符串。例如,tcl命令:如何从循环内发出命令?
set alpha “run”
$alpha
$alpha
$alpha
导致“运行”命令被发送到该工具三次 - 这是有道理的。但是:
set alpha “run”
for {set i 0} {$i<3} {incr i} $alpha
没有。所以问题是:如何从循环内部向工具发送命令?
答
这里是一个可能的方式(与输出):
% 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
风格点:写循环为'为{集合I 0} {$ I