2015-04-20 16 views
0

我想在Tcl 8.5中做一些非常簡單的事情。 我有一個變量,另一個變量,我試圖將它們等同於一個開關。 Python中很容易完成的事情& Ruby,我無法在Tcl中工作。手冊頁http://www.tcl.tk/man/tcl8.5/TclCmd/switch.htm沒有幫助。 查看代碼&結果:如何將變量輸入到Tcl開關代碼塊?

set k 4 
switch 4 { 
    $k { puts "yey" } 
    default {puts "no recon" } 
} 
exit 

它輸出:

no recon 

任何想法?

+0

手冊頁上的第一個例子展示瞭如何做到這一點,所以其實我覺得它確實幫助,如果你讀過它。 –

回答

1

Tcl不會在大括號內進行替換。用雙引號更改代碼

set k 4 
switch 4 " 
    $k { puts yey } 
    default {puts \"no recon\" } 
" 

或者它在一行寫爲

switch 4 $k { puts yey } default {puts "no recon" } 
+0

或使用subst來避免引用地獄 – slebetman

+0

「單行」版本是正確的使用方式。將新行放入塊中以匹配運行。 –

+0

這確實可以完成它,或者不帶引號,並帶有反斜槓。 – user1134991