2013-04-22 1 views
1

tcl리스트 선언에서 변수를 사용할 수 있습니까?tcl리스트를 선언 할 때 변수 값을 사용하는 방법

set grape_color "green" 

set produce_list {\ 
    { PRODUCE COLOR    REGION }\ 
    { APPLE "red"    TX }\ 
    { GRAPE $grape_color  CA }\ 
} 

puts $produce_list 

코드의 출력은 이것이다 : 나는 다음과 같은 간단한 예제가

{ PRODUCE COLOR    REGION } 
{ APPLE "red"    TX } 
{ GRAPE $grape_color  CA } 

을하지만 난 싶다 "녹색"대신 목록에서 $grape_color.

답변

5

당신이 할 수있는 한 가지 방법은 list 명령을 사용하는 것입니다.

set grape_color green 
set produce_list [list \ 
    [list PRODUCE COLOR  REGION] \ 
    [list APPLE red   TX] \ 
    [list GRAPE $grape_color CA]] 

또 다른 방법은 subst 명령을 사용하는 것입니다.

set grape_color green 
set produce_list { 
    { PRODUCE COLOR  REGION } 
    { APPLE red   TX } 
    { GRAPE $grape_color CA } 
} 
set produce_list [subst -nobackslashes -nocommands $produce_list] 
+0

두 가지 모두 작동합니다. 많은 분들께 감사드립니다. –

+2

첫 번째 옵션을 사용하는 것이 좋습니다 (추악함에도 불구하고). 두 번째는 다중 단어 대체 (예 : "레몬 옐로우") 문제가 발생합니다. –

+0

이 동작을 설명하는 것이 현명하다고 생각합니다. 즉 중괄호는 변수 대체를 방지합니다. – user1207217