在工作中使用tcl几年了,基本都是把测试用例转化成自动化脚本,没有用太多复杂的功能。我总结下自己用的比较多的地方:
我们需要把一个模块的配置命令写在一个函数中,每个命令作为可变参数传入,便于后期维护。
1.可变参数的函数
我们需要把一个模块的配置命令写在一个函数中,每个命令作为可变参数传入,便于后期维护。
proc VxlanConfig {args} { #存放命令字符串 set cmd "" #进入vxlan配置模式 。。。 #配置vxlan实例 #lsearch 命令在给定列表中搜索与匹配字符串匹配的元素,成功就返回正确的元素索引,否则返回-1。 set index [lsearch "-vxlan"] set value args[index+1] set cmd "-vxlan"+value }
2.列表的操作
lsearch ?-exact? ?-glob? ?-regexp? list pattern
返回list 中第一个匹配模式 pattern 的元素的索引,如果找不到匹配就返回-1。
-exact、-glob 、-regexp 是三种模式匹配的技术。-exact表示精确匹配;
-glob 的匹配方式和 string match命令的匹配方式相同,-regexp 表示正规表达式匹配。
3.正则表达式匹配,用于判断结果
string match ?-nocase? pattern string如果string匹配pattern就返回1,否则返回0。如果指定了-nocase样式匹配将是迟钝模式。对于两个字符串,需要完全相同,除非在pattern中指定了下面的匹配风格:
regexp [选项] <正则表达式> <匹配的原始字符串> <保存匹配后字符串的变量> [其他保存子模式匹配字符串的变量]
上面regexp中用[]括起来的部分是可选的,其他<>括起来的部分是必须的,如果正则表达式匹配从原始字符串中匹配到了内容,则命令返回1并且将匹配到的内容<保存匹配后字符串的变量>中。
原文:https://www.cnblogs.com/josie-xu/p/10636710.html