




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、,制作:測(cè)試部 日期:2012-03-12,制作:某某部 時(shí)間:2011-1-1,TCL腳本語言培訓(xùn),1、TCL腳本語言介紹 2、TCL的語法 3、TCL的變量 4、TCL的表達(dá)式 5、TCL常用命令 6、TCL的控制 7、TCL的過程 8、TCL的字符串操作 9、TCL的list 10. 學(xué)習(xí)TCL的一些建議和方法,針對(duì)TCl腳本語言的新手,2小時(shí),田顯蘭,使沒有接觸過TCL腳本語言的同事對(duì)TCL腳本語言的基礎(chǔ)概念和基礎(chǔ)知識(shí)有一定的了解??梢允褂肨CL腳本語言進(jìn)行簡(jiǎn)單的編程。,培訓(xùn)目的,培訓(xùn)對(duì)象,培訓(xùn)講師,學(xué)習(xí)重點(diǎn),培訓(xùn)課時(shí),1、TCL腳本語言介紹,TCL腳本語言培訓(xùn),TCL(Tool Co
2、mmand Language)是一種解釋執(zhí)行的腳本語言 提供通用的編程能力:支持變量、過程和控制結(jié)構(gòu),經(jīng)常被用于快速原型開發(fā),腳本編程,GUI和測(cè)試等方面 TCL擁有一個(gè)功能強(qiáng)大的固有的核心命令集,同時(shí)支持根據(jù)需要對(duì)TCL語言進(jìn)行擴(kuò)展 解釋器同等對(duì)待固有命令集和擴(kuò)展命令集 TCL的優(yōu)點(diǎn):語法簡(jiǎn)單,解釋執(zhí)行,可擴(kuò)展,跨平臺(tái),2、TCL的語法,簡(jiǎn)單的講: TCL語言的語法就是一些TCL解釋器怎樣對(duì)TCL命令進(jìn)行分析的規(guī)則的集合。 TCL命令的基本語法為: command arg1 arg2 arg3 ,TCL腳本語言培訓(xùn),2、TCL的語法,2-1、腳本、命令和單詞符號(hào),一個(gè)TCL腳本可以包含一個(gè)或
3、多個(gè)命令。命令之間必須用換行符或分號(hào)隔開。在所有TCL腳本中,系統(tǒng)內(nèi)部的命令名是小寫格式 Example: set a 100 set b 101 set c 102;set d 103 TCL的每一個(gè)命令包含一個(gè)或幾個(gè)單詞,第一個(gè)單詞代表命令名,另外的單詞則是這個(gè)命令的參數(shù),單詞之間必須用空格或TAB鍵隔開 。命令之間是可以嵌套的 Example: set a100 set b expr $a +1,TCL腳本語言培訓(xùn),2-2、置換的引入,2、TCL的語法,TCL解釋器對(duì)一個(gè)命令的求值過程分為兩部分:分析和執(zhí)行。在分析階段,TCL 解釋器運(yùn)用規(guī)則把命令分成一個(gè)個(gè)獨(dú)立的單詞,同時(shí)進(jìn)行必要的置換
4、(substitution); 在執(zhí)行階段,TCL 解釋器會(huì)把第一個(gè)單詞當(dāng)作命令名,并查看這個(gè)命令是否有定義,如果有定義就激活這個(gè)命令對(duì)應(yīng)的C/C+過程,并把所有的單詞作為參數(shù)傳遞給該命令過程,讓命令過程進(jìn)行處理。 Example: set log “test” set currentfilename “test.tcl” LOG:AppErr $log expr $namespace current:currentfilename “error” 置換可以發(fā)生在包含命令名在內(nèi)的每一個(gè)單詞中,而且置換可以嵌套 Example: set a 1 set b$a 2 TCL提供三種形式的置換:變量
5、置換、命令置換和反斜杠置換。,TCL腳本語言培訓(xùn),2-3、三種置換類型,2、TCL的語法,變量置換由一個(gè) $ 符號(hào)標(biāo)識(shí),變量置換會(huì)導(dǎo)致變量的值插入一個(gè)單詞中。TCL解釋器在分析一個(gè)變量置換時(shí),只把從 $ 往后直到第一個(gè)不是字符,數(shù)字或下劃線的字符之間的單詞符號(hào)作為被置換的變量的名字 Example: set a “hello”;set a_1 “hello”; set a-1 “hello” set b “$a world!”;set c “$a_1 world!”;set d “$a-1 world!” 命令置換是由 括起來的TCL命令及其參數(shù)。命令置換會(huì)導(dǎo)致某一個(gè)命令的所有或部分單詞被另一
6、個(gè)命令的結(jié)果所代替。 中必須是一個(gè)合法的TCL腳步,長(zhǎng)度不限。 中腳本的值為最后一個(gè)命令的返回值 Example: set b expr 100*10 反斜杠替換相當(dāng)于C語言中反斜杠的作用 ,主要用于在單詞符號(hào)中插入諸如換行符、空格、$等被TCL解釋器當(dāng)作特殊符號(hào)對(duì)待的字符 Example: set a a set b $100,TCL腳本語言培訓(xùn),2-4、雙引號(hào)和花括號(hào),2、TCL的語法,除了使用反斜杠外,TCL提供另外兩種方法來使得解釋器把分隔符和置換符等特殊字符當(dāng)作普通字符,而不作特殊處理,這就要使用雙引號(hào)(“”)和花括號(hào)()。 TCL解釋器對(duì)雙引號(hào)中的各種分隔符將不作處理,但是對(duì)換行符
7、 及$和兩種置換符會(huì)照常處理。 Example: set a 1;set b 2 puts “c = expr $a+$b” 而在花括號(hào)中,所有特殊字符都將成為普通字符,失去其特殊意義,TCL解釋器不會(huì)對(duì)其作特殊處理。 Example: set a 1;set b 2 puts c = expr $a+$b,TCL腳本語言培訓(xùn),2-5、注釋,2、TCL的語法,TCL中的注釋符是,和直到所在行結(jié)尾的所有字符都被TCL看作注釋,TCL解釋器對(duì)注釋將不作任何處理。不過,要注意的是,必須出現(xiàn)在TCL解釋器期望命令的第一個(gè)字符出現(xiàn)的地方,才被當(dāng)作注釋 。 Example: #This is a comm
8、ent set a 100 # Not a comment set b 100 ;#This is a comment,TCL腳本語言培訓(xùn),3、變量,TCL腳本語言培訓(xùn),TCL支持兩種類型的變量:簡(jiǎn)單變量和數(shù)組。 簡(jiǎn)單變量包含兩個(gè)部分:名字和值。名字和值都可以是任意字符串。例如一個(gè)名為 “1323 7#訪問當(dāng)前過程的調(diào)用者的調(diào)用者中的other upvar #0 other x ;#訪問全局的變量other,7-4、引用upvar,8、TCL的字符串操作(一),TCL腳本語言培訓(xùn),string命令具有強(qiáng)大的操作字符串的功能,其中的option選項(xiàng)多達(dá)20個(gè) string compare ?-n
9、ocase? ?-length int? string1 string2 把字符串string1和string2進(jìn)行比較,返回值為-1、0或1,分別對(duì)應(yīng)string1小于、等于或大于string2。如果有 -length 參數(shù),那么只比較前 int 個(gè)字符,如果 int為負(fù)數(shù),那么這個(gè)參數(shù)被忽略。 如果有 -nocase參數(shù),那么比較時(shí)不區(qū)分大小寫。 string equal ?-nocase? ?-length int? string1 string2 把字符串string1和string2進(jìn)行比較,如果兩者相同,返回值為1,否則返回0。其他參數(shù)與string compare同。 strin
10、g first string1 string2 ?startindex? 在string2 中從頭查找與string1匹配的字符序列,如果找到,那么就返回匹配的第一個(gè)字母所在的位置(0-based)。如果沒有找到,那么返回-1。如果給出了startindex變量,那么將從startindex處開始查找。,8、TCL的字符串操作(二),TCL腳本語言培訓(xùn),string index string charIndex 返回string 中第charIndex個(gè)字符(0-based)。charIndex可以是下面的值: 整數(shù)n: 字符串中第n個(gè)字符(0-based) end : 最后一個(gè)字符 end整
11、數(shù)n:倒數(shù)第n個(gè)字符。string index abcd end-1 返回字符c 如果charIndex小于0,或者大于字符串string的長(zhǎng)度,那么返回空。 string last string1 string2 ?startindex? 參照string first.唯一的區(qū)別是從后往前查找 string length string 返回字符串string的長(zhǎng)度. string match ?-nocase? pattern string 如果pattern 匹配string,那么返回1,否則返回0.如果有-nocase參數(shù),那么就不區(qū)分大小寫.,8、TCL的字符串操作(三),TCL腳本語
12、言培訓(xùn),string range string first last 返回字符串string中從第first個(gè)到第last個(gè)字符的子字符串(0-based)。如果first0,那么first被看作0,如果last大于或等于字符串的長(zhǎng)度,那么last被看作end,如果first比last大,那么返回空。 string repeat string count 返回值為:重復(fù)了string字符串count次的字符串 string replace string first last ?newstring? 返回值為:從字符串string 中刪除了第first到第last個(gè)字符(0-based)的字符串
13、,如果給出了newstring變量,那么就用newstring替換從第first到第last個(gè)字符。如果first0,那么first被看作0,如果last大于或等于字符串的長(zhǎng)度,那么last被看作end,如果first比last大或者大于字符串string的長(zhǎng)度或者last小于0,那么原封不動(dòng)的返回string string tolower string ?first? ?last? 返回值為:把字符串string轉(zhuǎn)換成小寫后的字符串,如果給出了first和last變量,就只轉(zhuǎn)換first和last之間的字符。,9、TCL的list(一),TCL腳本語言培訓(xùn),list這個(gè)概念在TCL中是用來表
14、示集合的。TCL中l(wèi)ist是由一堆元素組成的有序集合,list可以嵌套定義,list每個(gè)元素可以是任意字符串,也可以是list。list是TCL中比較重要的一種數(shù)據(jù)結(jié)構(gòu),對(duì)于編寫復(fù)雜的腳本有很大的幫助,TCL提供了很多基本命令對(duì)list進(jìn)行操作 list命令 用于創(chuàng)建一個(gè)list 命令格式: list ? value value.? concat命令把多個(gè)list合成一個(gè)list,每個(gè)list變成新list的一個(gè)元素 命令格式:concat list ?list.? lindex命令返回list的第index個(gè)(0-based)元素 命令格式:lindex list index llength
15、命令返回list的元素個(gè)數(shù) 命令格式:llength list,9、TCL的list(二),TCL腳本語言培訓(xùn),linsert命令返回一個(gè)新串,新串是把所有的value參數(shù)值插入list的第index個(gè)(0-based)元素之前得到 命令格式:linsert list index value ?value.? lreplace命令返回一個(gè)新串,新串是把list的第first (0-based)到第last 個(gè)(0-based)元素用所有的value參數(shù)替換得到的。如果沒有value參數(shù),就表示刪除第first到第last個(gè)元素。 命令格式:lreplace list first last ?v
16、alue value .? lrange 命令返回list的第first (0-based)到第last (0-based)元素組成的串,如果last的值是end。就是從第first個(gè)直到串的最后 命令格式:lrange list first last lappend命令把每個(gè)value的值作為一個(gè)元素附加到變量varname后面,并返回變量的新值,如果varname不存在,就生成這個(gè)變量 命令格式:lappend varname value ?value.?,9、TCL的list(三),TCL腳本語言培訓(xùn),lsearch 命令返回list中第一個(gè)匹配模式pattern的元素的索引,如果找不到
17、匹配就返回-1 命令格式:lsearch ?-exact? ?-glob? ?-regexp? list pattern -exact、-glob、 -regexp是三種模式匹配的技術(shù)。-exact表示精確匹配;-glob的匹配方式和string match命令的匹配方式相同;-regexp表示正規(guī)表達(dá)式匹配,缺省時(shí)使用-glob匹配 lsort命令返回把list排序后的串 命令格式: lsort ?options? list options可以是如下值: -ascii 按ASCII字符的順序排序比較.這是缺省情況。 -dictionary 按字典排序,與-ascii不同的地方是: (1)不考慮大小寫 (2)如果元素中有數(shù)字的話,數(shù)字被當(dāng)作整數(shù)來排序. 因此:bigBoy排在bigbang和bigboy之間, x10y 排在x9y和x11y之間. -integer 把list的元素轉(zhuǎn)換成整數(shù),按整數(shù)排序. -real 把list的元素轉(zhuǎn)換成浮點(diǎn)數(shù),按浮點(diǎn)數(shù)排序. -increasing 升序(按ASCII字符比較) -decreasing 降序(按ASCII字符比較) -command command TCL自動(dòng)利用command 命令把每?jī)蓚€(gè)元素一一比較,然后給出排序結(jié)果。,9、TCL的list(四),TCL腳本語言培訓(xùn),split命令把字符串string按分隔符splitC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 成都汽車租賃合同車輛安全檢查及保養(yǎng)協(xié)議
- 民航氣象考試題及答案
- 食堂配菜招投標(biāo)方案
- 中風(fēng)中經(jīng)絡(luò)的護(hù)理
- 2026版《全品高考》選考復(fù)習(xí)方案生物812 第27講 第2課時(shí) 其他植物激素、植物生長(zhǎng)調(diào)節(jié)劑及影響植物生命活動(dòng)調(diào)節(jié)的因素含答案
- 接待進(jìn)度管理方案(3篇)
- 2026版《全品高考》選考復(fù)習(xí)方案生物35 23.3神經(jīng)系統(tǒng)的分級(jí)調(diào)節(jié)及人腦的高級(jí)功能含答案
- 公益項(xiàng)目實(shí)施方案
- 小區(qū)店鋪投資選址方案
- 芯片現(xiàn)場(chǎng)采購方案
- 停車場(chǎng)數(shù)據(jù)分析與運(yùn)營(yíng)方案
- 電池及電池系統(tǒng)維修保養(yǎng)師國家職業(yè)標(biāo)準(zhǔn)(2024年)
- 個(gè)體戶庭審委托書
- 2.2 社會(huì)主義制度在中國的確立 課件高中政治統(tǒng)編版必修一中國特色社會(huì)主義
- 會(huì)計(jì)師事務(wù)所績(jī)效考核方案
- 健身教練獨(dú)立承包協(xié)議(2024年版)
- 洗衣機(jī)設(shè)備保修條款
- 日語被動(dòng)態(tài)練習(xí)
- 金屬廢棄物生物冶金提取與利用
- 廣西燃?xì)獍踩珯z查標(biāo)準(zhǔn) DBJ T45-1472-2023(2023年7月1日實(shí)施)
- 2023-2024學(xué)年第二學(xué)期期末學(xué)業(yè)質(zhì)量檢測(cè)八年級(jí)語文試卷
評(píng)論
0/150
提交評(píng)論