2013-05-16 4 views
0

자, tcl 스크립트에 이상한 오류가 발생했습니다. 이 작동되는 코드 :TCL - foreach의 런타임 오류

foreach param $bucket { 
if {[lindex $param 0] == "bucketState" &&\ 
    ([lindex $param 1] == "provisioned" ||\ 
    [lindex $param 1] == "Active")} { 
    set activatedFlag "TRUE" 
} 
} 

는 그리고이되지 않습니다 :

foreach param $bucket { 
if {[lindex $param 0] == "bucketState" &&\ 
    ([lindex $param 1] == "provisioned" ||\ 
    [lindex $param 1] == "active")} { 
    set activatedFlag "TRUE" 
} 
} 

유일한 차이점은 "활성"대 "활성"입니다. O_o

+2

정확한 오류 메시지를 알려주시겠습니까? – Jerry

+0

'Tcl 오류 평가 중' –

+0

흠, 두 버전 모두 나를 위해 작동 중입니다 ... – Jerry

답변

0

어떤 오류가 발생하는지 잘 모르겠지만 비교중인 목록 요소가 대소 문자를 구분한다는 것은 분명합니다. 대소 문자를 구별하지 않으려면 string tolower을 사용하십시오. 그러나 왜 그렇게해야하는지 알 수 없습니다.

foreach param $bucket { 
if {[lindex $param 0] == "bucketState" && \ 
    ([lindex $param 1] == "provisioned" || \ 
    [string tolower [lindex $param 1]] == "active")} { 
    set activatedFlag "TRUE" 
} 
} 
+0

조언을 위해서는 Thnx이지만 도움이되지는 않습니다./ –

+0

백 슬래시 앞에 공백이 있어야하며 뒤에 공백이 있어야합니다. 위의 코드를 수정했습니다. – TrojanName

+0

공백은 코드 기능에 영향을주지 않습니다! – Jerry