tcl使用小結


在工作中使用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.正則表達式匹配,用於判斷結果,用得最多的

兩種模式匹配, 一種是簡單的"通配符"樣式,一種是正則表達式

(1)string match 通配符樣式的匹配

string match ?-nocase? 模式 string ; -nocase表示忽略大小寫,常用的通配符與C類似,*表示任意字符串,?表示任意的一個字符,

(2)正則表達式

regexp  [選項]  <正則表達式>  <匹配的原始字符串>  <保存匹配后字符串的變量>  [其他保存子模式匹配字符串的變量]

上面regexp中用[]括起來的部分是可選的,其他<>括起來的部分是必須的,如果正則表達式匹配從原始字符串中匹配到了內容,則命令返回1並且將匹配到的內容<保存匹配后字符串的變量>中。

 

反斜杠序列

簡要說明

\d

表示0-9之間的數字

\D

除了0-9之間數字的其他字符,與\d作用相反

\s

空白符,包括空格、換行、回車、制表、垂直制表、換頁符等

\S

非空白符,與\s作用相反

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM