Tcl編程簡介(三)

來源:互聯網
上載者:User

Tcl編程簡介(三)
 

  Tcl 內建命令

內建的命令

  Tcl提供了下面描述的內建函數。

  .其中: ... 表示參數不定具體有:

  append命令:

append varName value
append varName value value value ...

 

  將那一大堆value附加到varName後面。如果變數不存在,會建立一個。

  例子:

set i "aaa"
append i "bbb" "ccc"
//i = aaabbbccc

 

  array命令:

array subcommand arrayName
array subcommand arrayName arg ...

 

  這是一組用於向量操作的命令。第二個參數是子命令名。

  假設:

set a(1) 1111
set a(2) 2222
set a(three) 3333

 

  一下均以它為例子(tclsh在中運行)。

array names arrayName

  返回一個數組元素名字的列表。

tclsh>array names a
1 2 three
array size arrayName

 

  返回數組的元素個數。

tclsh>array size a
3

 

  下面是用於遍曆的命令

arrry startsearch arrayName

  初始化一次遍曆,返回一個遍曆標示(searchId)在下面的命令是中使用。

array nextelement arrayName searchId

  返回下一個數組中的元素。如果沒有返回一個空串。

array anymore arrayName searchId

  返回 1 表示還有更多的元素。0 表示沒有了。

array donesearch arrayName searchId

  結束該次遍曆。

array nextelement arrayName searchId

  返回下一個元素。

tclsh>array startsearch a
s-1-a
tclsh>array nextelement a s-1-a
1111
tclsh>array nextelement a s-1-a
2222
tclsh>array anymore a s-1-a
1
tclsh?array nextelement a s-1-a
3333
tclsh>array donesearch a s-1-a

 

  注意可以同時並發多個遍曆。

break命令
break

 

  跳出最近的迴圈。

case string in patList body ...
case string patList body ...
case string in {patList body ...}
case string {patList body ...}

 

  分支跳轉。

  例如:

case abc in {a b} {puts 1} default {puts 2} a* {puts 3}
return 3.

case a in {
{a b} {format 1}
default {format 2}
a* {format 3}
}
returns 1.

case xyz {
{a b}
{format 1}
default
{format 2}
a*
{format 3}
}
returns 2.

 

  注意default不可以放在第一位。支援shell檔案名稱風格的匹配符。

catch 命令

catch command varName

  用於阻止由於錯誤而導致中斷執行。執行command, 每次都返回TCL_OK, 無論是否有錯誤發生。如有錯誤發生返回1 ,反之返回0 。如果給了varName這被置為錯誤資訊。注意varName是已經存在的變數。

cd 命令(如shell)
cd dirName

 

  轉換當前工作目錄。如dirName未給出則轉入home目錄。

close fileId

  關閉檔案描述符。

concat arg ...

  將參數串連產生一個表。

concat a b {c d e} {f {g h}}
return `a b c d e f {g h}"

continue

 

  結束該次迴圈並繼續迴圈。

eof fileId

  如fileId以結束 返回1,反之返回 0。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.