在工做中使用tcl幾年了,基本都是把測試用例轉化成自動化腳本,沒有用太多複雜的功能。我總結下本身用的比較多的地方:正則表達式
咱們須要把一個模塊的配置命令寫在一個函數中,每一個命令做爲可變參數傳入,便於後期維護。函數
1.可變參數的函數測試
咱們須要把一個模塊的配置命令寫在一個函數中,每一個命令做爲可變參數傳入,便於後期維護。spa
proc VxlanConfig {args} { #存放命令字符串
set cmd ""
#進入vxlan配置模式
。。。 #配置vxlan實例
#lsearch 命令在給定列表中搜索與匹配字符串匹配的元素,成功就返回正確的元素索引,不然返回-1。
set index [lsearch "-vxlan"] set value args[index+1] set cmd "-vxlan"+value }
2.列表的操做
code
lsearch ?-exact? ?-glob? ?-regexp? list pattern regexp
返回list 中第一個匹配模式 pattern 的元素的索引,若是找不到匹配就返回-1。blog
-exact、-glob 、-regexp 是三種模式匹配的技術。-exact表示精確匹配;索引
-glob 的匹配方式和 string match命令的匹配方式相同,-regexp 表示正規表達式匹配。ci
3.正則表達式匹配,用於判斷結果,用得最多的字符串
兩種模式匹配, 一種是簡單的"通配符"樣式,一種是正則表達式
(1)string match 通配符樣式的匹配
string match ?-nocase? 模式 string ; -nocase表示忽略大小寫,經常使用的通配符與C相似,*表示任意字符串,?表示任意的一個字符,
(2)正則表達式
regexp [選項] <正則表達式> <匹配的原始字符串> <保存匹配後字符串的變量> [其餘保存子模式匹配字符串的變量]
上面regexp中用[]括起來的部分是可選的,其餘<>括起來的部分是必須的,若是正則表達式匹配從原始字符串中匹配到了內容,則命令返回1而且將匹配到的內容<保存匹配後字符串的變量>中。
反斜槓序列 |
簡要說明 |
\d |
表示0-9之間的數字 |
\D |
除了0-9之間數字的其餘字符,與\d做用相反 |
\s |
空白符,包括空格、換行、回車、製表、垂直製表、換頁符等 |
\S |
非空白符,與\s做用相反 |