這是一個非常基本的問題。
我認爲TCL是一個命令行生成器。其目的是爲工具的命令行解釋器生成字符串。例如,tcl命令:如何從循環內發出命令?
set alpha 「run」
$alpha
$alpha
$alpha
導致「運行」命令被髮送到該工具三次 - 這是有道理的。但是:
set alpha 「run」
for {set i 0} {$i<3} {incr i} $alpha
沒有。所以問題是:如何從循環內部向工具發送命令?
這是一個非常基本的問題。
我認爲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
%
在這裏不需要使用eval,如果任何參數具有列表結構,實際上可能會破壞事情。 –
@PeterLewerin同意。謝謝。更新了上面的代碼片段。 – Sharad
你的問題很可能是與「搞笑語錄」在該行
set alpha 「run」
TCL集團,這些報價都沒有句法標記,只是文本。嘗試
set alpha "run"
,或者甚至更好,
set alpha run
風格點:寫循環爲'爲{集合I 0} {$ I <3} {增量I} {$阿爾法}',以避免引用可能存在的問題。我希望這不會爲你真正解決它,但也許... –