Tcl中的unknown命令

2021-04-14 16:49:58 字數 1308 閱讀 3930

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命令會...