set就是變數宣告,這個宣告在需要使用的指令下會自動執行,不會出現沒有宣告的錯誤。但是對於puts這類定向訪問的是不能沒有宣告的。這裡簡單理解tcl中的變數:以字串的形式存在,具體的值由$符號訪問。訪問之前必須已經有宣告。
set x 0puts $x
puts x
兩個puts都是可以顯示結果的,掐前乙個是值,後乙個是字元。
tcl中的指令長度是確定的,由關鍵字決定。每個引數使用空格區分。如果需要將指令內的某個引數巢狀其他指令,則需要使用來確認巢狀指令的範圍。expr是取算數計算的結果的指令,引數就是算數表示式。
set x 0set x [
expr $x+1
]puts $x
最後的結果是1,第二句語句就是將x加1.
前面介紹如何嵌入指令,同樣含有空格的字串也是需要嵌入的(某些引數需要帶有空格及特殊字元的字串作為引數)。使用{}可以將內部的內容轉化為特殊字串變數,在tcl中為list型變數。list作為引數時,內部的符號都是由對應指令控制的,而不是按照指令解釋。這裡有許多對list操作的指令,以後有時間詳細分析。
set x 2 }puts $x
x的值就是後面的一串list型變數
tcl中的條件判斷語句。
if elseif elseif elseif elseif elseif elseif}for
while兩個引數,第乙個迴圈條件,第二個執行體。for有四個引數,第乙個初始執行體(開始前執行一次),第二個迴圈條件,第三個條件執行體,第四個迴圈執行體。每個引數按照c語言中的for可以完全對應。
list迴圈結構,這是比較特殊的迴圈。其判斷條件是list型變數的長度及讀取尺度,執行體和for是一樣的。第乙個引數是讀取長度及快取變數,第二個是待讀取的list型變數。第三個是執行體。
set b ""set a }
foreach i $a
set x {}
foreach
第乙個foreach中,讀取長度是1(i只有乙個字元),快取變數是i,待讀取的list(可以直接寫,也可以是已經存在的,已存的需要加$讀取符),執行的就是最後的引數的內容。linsert是字元插入指令,這裡暫時不解釋。
第二個就是將長度換成2,快取變數變成i和j,其他的是一樣的。
eval是命令解讀指令。source是呼叫外部檔案的指令。
#!/bin/sh# eval_source.tcl \
exec tclsh "$0
" $eval set b
2 ;set b 4
puts $b
set cmd
"puts \"i love you \"
"eval $cmd
source d:/library/tcl_design/t1_workspace/a3_string.tcl
這裡cmd宣告為字串(真正的和c語言中一樣的字串,注意轉義字元\的使用),可以將命令轉化為字串,由eval解釋執行。這裡可以使用其他系統命令。source就是直接呼叫外部可執行的檔案。
TCL基本語法
目錄 1.輸出 2.賦值 3.替換 tcl使用 puts 關鍵字來作為輸出語句 puts hello結果 hello puts nonewline hello hello 結果 hello hellotcl 使用 set 關鍵字來定義引數,不必指定變數值的型別,因為變數 值的型別僅一種 字串。為變數...
1 TCL指令碼基本語法(概要)
乙個tcl指令碼可以包含乙個或多個命令。命令之間必須用換行符或分號隔開。第乙個單詞代表命令名,另外的單詞則是這個命令的引數,用空格或tab鍵隔開。變數置換 命令置換 反斜槓置換 例如set msg multiple space 如果沒有 則有報警。雙引號將各種分隔符將不作處理,對換行符及 和兩種置換...
1 TCL指令碼基本語法(概要)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!乙個tcl指令碼可以包含乙個或多個命令。命令之間必須用換行符或分號隔開。第乙個單詞代表命令名,另外的單詞則是這個命令的引數,用空格或tab鍵隔開。變數置換 命令置換 反斜槓置換 例如set msg multiple space 如果沒有 則有報警。...