資源描述:
《tcl腳本教程.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Tcl入門(mén)培訓(xùn)119-Tcl-Overview.ppt1998/01/03文檔結(jié)構(gòu)Tcl介紹“HelloWorld”程序及擴(kuò)展變量數(shù)據(jù)類(lèi)型特殊字符數(shù)據(jù)結(jié)構(gòu)控制結(jié)構(gòu)程序結(jié)構(gòu)語(yǔ)法要點(diǎn)對(duì)oracle操作ktcl文件一些建議后附我們?yōu)槭裁从肨cl?Tcl是什么?1、ToolCommandLanguage2、TerminalControlLanguageTcl是一種解釋型的腳本語(yǔ)言。腳本解釋器為tclsh,同時(shí)它也是一個(gè)shell環(huán)境。Tcl和C語(yǔ)言有著天然的親緣關(guān)系,即相近的數(shù)據(jù)類(lèi)型與控制結(jié)構(gòu);通過(guò)規(guī)范的API,能夠比較方便的用C進(jìn)行Tcl的擴(kuò)展開(kāi)發(fā)。Tc
2、l能做什么?1、Tcl首先是作為一種簡(jiǎn)單的命令腳本語(yǔ)言而發(fā)明,以便控制和調(diào)用各個(gè)系統(tǒng)命令。2、與C相似的數(shù)據(jù)類(lèi)型與控制結(jié)構(gòu),使其具有處理高級(jí)事務(wù)的能力。3、強(qiáng)大的文本處理能力。4、擴(kuò)展能力達(dá)到GUI、網(wǎng)絡(luò)、OOP等各個(gè)方面。我們?yōu)槭裁从肨cl?1、確實(shí)好用,功能強(qiáng)大:從KAP加速引擎到html(ktcl)標(biāo)簽。2、快速學(xué)習(xí)、快速開(kāi)發(fā)。老套一個(gè)著名的程序世界上最著名的程序是什么?猜一猜:是“HelloWorld!”,下面是tcl版的程序(設(shè)aiobs56>為Unix系統(tǒng)提示符)aiobs56>cathello.tcl#!/aitools/bin/tc
3、lshputs“HelloWorld!”aiobs56>hello.tclHelloWorld!aiobs56>shell方式以上是以程序的方式運(yùn)行;tcl也可以運(yùn)行于shell的形式(提示符%)aiobs56>tclsh%puts“HelloWorld!”HelloWorld!%exitaiobs56>老套(續(xù))Tcl腳本程序的結(jié)構(gòu)1、在第一行指定解釋器#!/aitools/bin/tclsh或如下寫(xiě)法#!/bin/sh#thenextlinerestartsusingtclshexectclsh"$0""$@"2、注釋的標(biāo)記為#如:#This
4、isacommentsentence3、句與句(包括注釋句)之間以“換行”或“;”分隔如:#Followingasentenceputs“l(fā)ine1”puts“l(fā)ine2”;#Anothercomment老套(續(xù))puts命令看tcl的幫助,是這樣說(shuō):puts向一個(gè)channel(相當(dāng)于C里的句柄)寫(xiě)這里的channel可以是標(biāo)準(zhǔn)輸出、一個(gè)打開(kāi)的文件、一個(gè)打開(kāi)的socket、甚至一個(gè)打開(kāi)的Unix管道等等、等等。puts命令用法puts?-nonewline??channelId?string兩個(gè)?表示之間的內(nèi)容為可選。如上文的puts“Hello
5、World!”向“屏幕(標(biāo)準(zhǔn)輸出)”寫(xiě)字符串,可以寫(xiě)成putsstdout“HelloWorld!”-nonewline是puts命令的一個(gè)option,它的意思是“輸出內(nèi)容后不換行”另一個(gè)老套第二著名的程序aiobs56>cathello2.tcl#!/aitools/bin/tclshputs-nonewline“Pleaseinputyourname:”setName[getsstdin];#Youcanwriteitas:getsstdinNameputs“Hello,$Name!”運(yùn)行aiobs56>hello2.tclPleaseinp
6、utyourname:MarkHelloMark!aiobs56>新的內(nèi)容符號(hào)對(duì)“[]”gets命令set命令$符號(hào)另一個(gè)老套(續(xù))新的內(nèi)容在前一頁(yè),有一個(gè)語(yǔ)句:setName[getsstdin]符號(hào)對(duì)“[]”的意思是:執(zhí)行里面的命令,用結(jié)果替換這個(gè)組合,類(lèi)似于C語(yǔ)言中的函數(shù)調(diào)用。上文這個(gè)句子的含義是:把“getsstdin”的值賦給變量Name。gets的語(yǔ)法:getschannelId?varName?gets從一個(gè)channel取一個(gè)行到指定變量;同時(shí)它本身也返回這個(gè)行,所以gets還有第二種用法:getsstdinName變量變量是程序的
7、基礎(chǔ)。變量:變量名、變量值變量名:任何字符串都可作為變量名,如下所示,皆可作變量名Name變量1“AVariable”甚至空格或一個(gè)“空”串也可以作為變量名。變量賦值:setNameMarksetLine“HelloWorld!”set變量名值與gets類(lèi)似,命令set同時(shí)也返回值。引號(hào)的作用是讓里面的內(nèi)容為一個(gè)整體(因?yàn)橹虚g有空格),其本身不是實(shí)際數(shù)據(jù);如果要把引號(hào)作為數(shù)據(jù)引用,在其前面用轉(zhuǎn)義符號(hào)變量(續(xù))變量的值:變量的值以符號(hào)“$”加變量名來(lái)展開(kāi),如:$Name$變量1$“AVariable”注意,在展開(kāi)變量名之前必須保證此變量已被賦過(guò)值,
8、否則在展開(kāi)時(shí)會(huì)報(bào)錯(cuò)“nosuchvariable”。舉例,請(qǐng)?jiān)谝粋€(gè)tcl環(huán)境里逐一試試如下命令:%setNameMark%