TCL 中的字符串比较

String comparison in TCL

我有一个变量 nodename = v445 和另一个变量 nodepatch=v445-sctpsv

我想比较

if { $nodename == ???????} {
 }

所以这里我只想比较某些-第二个变量之前的部分可能包含多个 - 在名称中,所以我只想提取等效的字符串到节点名进行比较。 在字符串操作之后,第二部分应该像这样出现:

if { $nodename == "v445"} {
 proceed } else { 
}

尝试

set nodename v445
set nodepatch v445-sctpsv

if {[string match $nodename* $nodepatch]} {
    proceed
} else {
}

string match 对字符串进行 glob 式匹配,在这种情况下,以 $nodename 中的值开头并包含零个或多个字符的字符串与字符串 $nodepatch.

如果您需要确保破折号出现,请改用 string match $nodename-* $nodepatch

文档:if, set, string