unknown
命令的語法為:
unknowncmdname ?arg
arg ...?
當乙個指令碼試圖執行乙個不存在的命令時,
tcl直譯器會啟用unknown
命令,並把那個不存在的命令的名字和引數傳遞給unknown
命令。unknown
命令不是
tcl的核心的一部分,它是由
tcl指令碼實現的,可以在
tcl安裝目錄的
lib子目錄下的
init.tcl
檔案中找到其定義。
unknown
命令具有以下功能:
1。如果命令是乙個在
tcl的某個庫檔案
(這裡的庫檔案指的是
tcl目錄的
lib子目錄下的
tcl指令碼檔案
)中定義的過程,則載入該庫並重新執行命令,這叫做
「auto-loading」
(自動載入),關於它將在下一節描述。
2。如果存在乙個程式的名字與未知命令一致,則呼叫
exec
命令來呼叫該程式,這項特性叫做
「auto-exec」
(自動執行)。例如你輸入
「dir」
作為乙個命令,
unknown
會執行「exec dir」
來列出當前目錄的內容,如果這裡的命令沒有特別指明需要輸入輸出重定向,則自動執行功能會使用當前
tcl應用所擁有的標準輸入輸出流,以及標準錯誤流,這不同於直接呼叫
exec
命令,但是提供了在
tcl應用中直接執行其他應用程式的方法。
3。如果命令是一組特殊字元,將會產生乙個新的呼叫,這個呼叫的內容是歷史上已經執行過的命令。例如,如果命令時
「!!」
則上一條剛執行過的命令會再執行一遍。下一章將詳細講述該功能。
4。若命令是已知命令的唯一縮寫,則呼叫對應的全名稱的正確命令。在
tcl中允許你使用命令名的縮寫,只要縮寫唯一即可。
如果你不喜歡
unknown
的預設的行為,你也可以自己寫乙個新版本的
unknown
或者對庫中已有
unknown
的命令進行擴充套件以增加某項功能。如果你不想對未知命令做任何處理,也可以刪除
unknown
,這樣當呼叫到未知命令的時候就會產生錯誤。
TCL語言筆記 TCL中的String命令
字串是 tcl 中的基本資料型別,所以有大量的字串操作命令。乙個比較重要的問題就是模式匹配,通過模式匹配將字串與指定的模式 格式 相匹配來進行字串的比較 搜尋等操作。命 令 說 明 string bytelengthstr 返回用於儲存字串的位元組數。string compare?nocase?le...
TCL語言筆記 TCL中的數學函式
函式名說明 舉例abs arg 取絕對值 set a 10 a 10 set a expr abs a a 10 acos arg 反余弦set p 1.0 set a expr acos p a 0.0 asin arg 反正弦atan arg 反正切atan2 比值取反正切 ceil arg 返...
Tcl控制結構命令
1 條件命令 if switch。與c語言中用法相同,不再贅述。2 迴圈命令 foreach while for foreach命令迴圈執行乙個命令體,每次將乙個或多個列表中的每個賦值給乙個或多個迴圈變數。3 微調控制結構命令 break continue error return break命令會...