我有一个包含一个成员的列表,该成员是字符串<cmd_stichstudy1>XXDDR0_MA[12]
。当我在列表中搜索该字符串时(使用lsearch
),我得到该列表不包含它。当我搜索列表成员时,我甚至得到它:
tcl> set nets_names
{<cmd_stichstudy1>XXDDR0_MA[12]}
tcl> lsearch $nets_names [lindex $nets_names 0]
-1
为什么会这样?
答案 0 :(得分:4)
如果您使用-exact,它将以您希望的方式运作。
% set nets_names {<cmd_stichstudy1>XXDDR0_MA[12]}
<cmd_stichstudy1>XXDDR0_MA[12]
% lsearch -exact $nets_names [lindex $nets_names 0]
0
%
答案 1 :(得分:2)
lsearch
默认使用glob-style matching是不幸的。
引用手册:
如果省略所有匹配的样式选项,则默认匹配样式为-glob。
因此,除非您真的需要-exact
,否则请始终将lsearch
传递给-glob
。