2016-04-24 80 views
0

這是一個非常基本的問題。

我認爲TCL是一個命令行生成器。其目的是爲工具的命令行解釋器生成字符串。例如,tcl命令:如何從循環內發出命令?

set alpha 「run」 
$alpha 
$alpha 
$alpha 

導致「運行」命令被髮送到該工具三次 - 這是有道理的。但是:

set alpha 「run」 
for {set i 0} {$i<3} {incr i} $alpha 

沒有。所以問題是:如何從循環內部向工具發送命令?

+0

風格點:寫循環爲'爲{集合I 0} {$ I <3} {增量I} {$阿爾法}',以避免引用可能存在的問題。我希望這不會爲你真正解決它,但也許... –

回答

0

這裏是一個可能的方式(與輸出):

% 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

1

你的問題很可能是與「搞笑語錄」在該行

set alpha 「run」 

TCL集團,這些報價都沒有句法標記,只是文本。嘗試

set alpha "run" 

,或者甚至更好,

set alpha run