bionic (3) library.3tcl.gz

Provided by: manpages-zh_1.6.3.2-1_all bug

NAME

       auto_execok,   auto_import,   auto_load,   auto_mkindex,   auto_mkindex_old,   auto_qualify,  auto_reset,
       tcl_findLibrary, parray, tcl_endOfWord, tcl_startOfNextWord, tcl_startOfPreviousWord, tcl_wordBreakAfter,
       tcl_wordBreakBefore - standard library of Tcl procedures

總覽 SYNOPSIS

       auto_execok cmd
       auto_import pattern
       auto_load cmd
       auto_mkindex dir pattern pattern ...
       auto_mkindex_old dir pattern pattern ...
       auto_qualify command namespace
       auto_reset
       tcl_findLibrary basename version patch initScript enVarName varName
       parray arrayName
       tcl_endOfWord str starttcl_startOfNextWord str starttcl_startOfPreviousWord str starttcl_wordBreakAfter str starttcl_wordBreakBefore str start                                                                             │
_________________________________________________________________

介紹 INTRODUCTION

       Tcl 爲公共需求的功能包含了一個 Tcl 過程庫。在 Tcl 庫中定義的過程是適用於多種不同的應用的通用過程。用 info
       library 命令返回 Tcl 庫的位置。除了這個 Tcl  庫之外,每個應用通常都有它自己的支持過程庫;這個庫的位置通常
       用 $app_library 全局變量的值給出,這裏 app 是應用的名字。例如,Tk 庫的位置保持在變量 $tk_library 中。

       要訪問在 Tcl 庫中的過程,一個應用應該 source (載入)庫中的文件 init.tcl,例如,Tcl 命令
              source [file join [info library] init.tcl]
       如果在一個應用的  Tcl_AppInit 過程中調用了庫過程 Tcl_Init,則這(個加載)將自動發生。在 init.tcl 中的代碼將
       定義 unknown 過程和使用下面定義的自動裝載機制安排其他過程在需要時裝載。

命令過程 COMMAND PROCEDURES

       在 Tcl 庫中提供了下列過程:

       auto_execok cmd
              確定是否有一個叫 cmd 的一個可執行文件或 shell     內置命令。如果有,它返回要傳遞給 exec     來執行
              這個叫 cmd 的可執行文件或 shell     內置命令的那些參數的一個列表。如果沒有,它返回一個空串。這個命
              令檢查在當前查找路徑中目錄(由     PATH  環境變量給出),在其中查找叫  cmd      的一個可執行文件。在
              Windows      平臺上,查找被展開爲相同的目錄和與 exec     使用相同的文件名擴展。 Auto_exec 在一個叫
              auto_execs     的數組中記住以前查找的信息;這避免在將來調用相同的     cmd 時進行路徑查找。可以使用
              命令 auto_reset     來強迫 auto_execok 忘掉緩存的信息。

       auto_import patternnamespace import 期間調用 Auto_import 來查看用 pattern 指定的導入命令是否駐留在一個 自動裝載的
              庫中。如果是,則裝載這個命令,這樣要建立導入連接的解釋器就可以獲得它們。如果這個命令不駐留在自動裝
              載庫中,auto_import 什麼都不做。

       auto_load cmd
              這個命令嘗試裝載一個叫做  cmd 的 Tcl  命令的定義,它查找一個自動裝載路徑,它是一個或多個目錄的一個
              列表。如果全局變量      $auto_path       存在的話,則它給出這個自動裝載路徑。如果沒有   $auto_path
              變量,則若  TCLLIBPATH     環境變量存在則使用它。否則自動裝載路徑只包含 Tcl     庫目錄。在自動裝載
              路徑中的每個目錄中必須有描述在這個目錄中定義的一個或多個命令的一個文件      tclIndex,和要被求值來
              裝載每個命令的一個腳本。應當使用     auto_mkindex 命令來自動生成 tclIndex     文件。如果在一個索引
              文件中找到 cmd     ,則求值適當的腳本來建立這個命令。如果成功的建立了 cmd,則     auto_load 命令返
              回  1。如果沒有給 cmd     的索引條目或這個腳本實際上定義的不是 cmd(例如,因爲索引信息過時了),這個
              命令返回     0。如果在處理這個腳本的時候發生了一個錯誤,則返回這個錯誤。Auto_load     只讀這個索引
              文件一次並把它保存到數組 auto_index 中;以後對     auto_load 的調用將在這個數組中檢查 cmd     而不
              是重讀索引文件。可以用命令 auto_reset 刪除緩存的索引信息。這將強制下一個     auto_load  命令從磁盤
              重新裝載索引數據庫。

       auto_mkindex dir pattern pattern ...
              生成適合於 auto_load 使用的一個索引。這個命令在 dir   中查找名字匹配任何 pattern 參數的所有文件(使
              用 glob  命令進行匹配),生成在所有匹配的文件的中定義的所有  Tcl 命令過程的一個索引,並且在 dir  中
              的一個叫 tclIndex 的文件中存儲索引信息。如果未給出模式,則假定模式是 *.tcl,例如
                     auto_mkindex foo *.tcl

              將在子目錄讀 foo 中讀取所有 .tcl 文件並生成一個新索引文件 foo/tclIndexAuto_mkindex   通過把   Tcl   腳本載入(source)到一個從解釋器中來分析它們並監視執行的      proc  和
              namespace 命令。擴展可以使用(沒有文檔)     auto_mkindex_parser 包來註冊對 auto_load     索引有所貢
              獻的其他命令。你必須閱讀 auto.tcl     來查看這是如何工作的。

              Auto_mkindex_old 在一個相對不復雜的方式分析 Tcl     腳本: 如果任何一行包含字 proc     爲它的第一個
              字,則假定它爲一個過程定義並接受這一行的下一個字爲這個過程的名字。不是以這種方式出現的過程定義(比
              如,在      proc 前面有空格)將不被編排索引。如果你的腳本包含“危險”代碼,比如全局初始化代碼或有特殊
              字符如     $*[] 的過程名字,則你使用     auto_mkindex_old 是更安全的。

       auto_reset
              銷燬被 auto_execokauto_load 緩存的所有信息。下次需要這些信息的時候將從磁盤重新讀取。Auto_reset
              還刪除在 auto-load     中列出的所有過程,這樣下次使用它們的時候將裝載它們的刷新了的複本。

       auto_qualify command namespace
              計算  command  的完全限定的名字的一個列表。這個列表鏡像標準      Tcl 解釋器用以查找命令的那個路徑:
              首先它在當前名字空間中查找這個命令,接着在全局名字空間中。相應的,如果      command   是相對的並且
              namespace  不是 ::,則返回的這個列表兩個元素:     一個是由 namespace 界定範圍的command,如同它是一
              個在      namespace  名字空間中的命令一樣;而另一個  command      如同在全局名字空間中的一個命令一
              樣。否則,如果  command      是絕對的(它以  :: 爲開始),或者 namespace::,則這個列表只包含一個
              command     ,如同它是一個在全局名字空間中的命令一樣。

              在 Tcl 中自動裝載設施使用 Auto_qualify,用來生成自動裝載索引如      pkgIndex.tcl,和用來在運行時進
              行實際的函數自動裝載。

       tcl_findLibrary basename version patch initScript enVarName varName
              這個命令是擴展在它們的初始化期間使用的一個標準查找過程。擴展調用這個過程來在多個標準路徑中查找它們
              的過程。目錄名字的最後的構成部分通常是     basenameversion  (例如,tk8.0),但在建造等級上他可能是“
              庫”。一旦找到就把     initScript 文件 source(加載)到解釋器中。把在其中找到文件的那個目錄保存到全局
              變量     varName 中。如果已經定義這個變量(比如,在應用初始化期間用     C 代碼),則不進行查找。否則
              在以下這些目錄中進行查找:      由環境變量  enVarName 給出名字的目錄;相對於 Tcl     庫的目錄;相對
              於(??? relative to)在標準安裝 bin 或 bin/arch     中的可執行文件的目錄;相對於在當前建造樹中的可執
              行文件的目錄;相對於在並行建造樹中的可執行文件的目錄。

       parray arrayName
              把數組 arrayName    中的所有元素的名字和值輸出到標準輸出上。ArrayName   必須是一個對於 parray 的調
              用者是可以訪問的一個數組。它可以是局部的或全局的。

       tcl_endOfWord str start
              返回字符串 str 中在起始索引 start  之後出現的第一個字結束(end-of-word)位置的的索引。定義字結束位置 │
              爲在起始點之後跟隨在第一個單字字符後面的第一個非字字符。如果在起始點之後沒有字結束位置則返回       │
              -1。關於 Tcl  如何確定哪個字符是單字字符的詳情參見下面對 tcl_wordcharstcl_nonwordchars  的描 │
              述。                                                                                               │

       tcl_startOfNextWord str start                                                                             │
              返回字符串 str 中在起始索引 start  之後出現的第一個字開始(start-of-word)位置的的索引。定義字開始位 │
              置爲跟隨在一個非字字符後面的第一個單字字符。如果在起始點之後沒有字開始位置則返回 -1。              │

       tcl_startOfPreviousWord str start                                                                         │
              返回字符串 str 中在起始索引 start  之前出現的第一個字開始(start-of-word)位置的的索引。如果在起始點 │
              之前沒有字開始位置則返回  -1。                                                                     │

       tcl_wordBreakAfter str start                                                                              │
              返回字符串  str 中在起始索引 start  之後出現的第一個字邊界的索引。如果在給定字符串中在起始點之後沒 │
              有邊界則返回  -1。返回的索引參照組成一個邊界(字符)對的第二個字符。                                 │

       tcl_wordBreakBefore str start                                                                             │
              返回字符串 str 中在起始索引 start   之前出現的第一個字邊界的索引。如果在給定字符串中在起始點之前沒 │
              有邊界則返回 -1。返回的索引參照組成一個邊界(字符)對的第二個字符。

變量 VARIABLES

       在 Tcl 庫中的過程定義或使用下列全局變量:

       auto_execs
              用它來記錄關於特定命令是否存在爲可執行文件的信息。

       auto_index
              auto_load 用它來保存從磁盤讀來的索引信息。

       auto_noexec
              如果設置了任何值,則 unknown     不嘗試自動執行任何命令。

       auto_noload
              如果設置了任何值,則 unknown     不嘗試自動裝載任何命令。

       auto_path
              如果設置了它,則它必須包含一個有效的  Tcl     列表,給出在自動裝載操作中要查找的目錄。在啓動期間初
              始化這個變量爲依次包含:     在 TCLLIBPATH 環境變量中列出的目錄,由  $tcl_library      變量命名的目
              錄,$tcl_library 的父目錄,在 $tcl_pkgPath     變量中列出的目錄。

       env(TCL_LIBRARY)
              如果設置了它,則它指定包含庫腳本的目錄的位置(這個變量的值將被賦予      tcl_library  變量並被  info
              library 命令所返回)。如果這個變量未被設置,則使用缺省的值。

       env(TCLLIBPATH)
              如果設置了它,則它必須包含一個有效的 Tcl     列表,給出在自動裝載操作期間要查找的目錄。必須用  Tcl
              格式指定目錄,使用“/”作爲分隔符而不管是在什麼平臺上。只在初始化     auto_path 的時候使用這個變量。

       tcl_nonwordchars
              這個變量包含一個正則表達式,用於象   tcl_endOfWord      這樣的例程來識別一個字符是否是一個字的一部 │
              分。如果這個模式匹配一個字符,則把這個字符作爲一個非字(non-word)字符對待。在       Windows    平臺 │
              上,空格、tab、和換行被作爲非字字符對待。在      Unix     下,除了數字、字母和下劃線之外,所有字符 │
              都是非字字符。                                                                                     │

       tcl_wordchars                                                                                             │
              這個變量包含一個正則表達式,用於象  tcl_endOfWord       這樣的例程來識別一個字符是否是一個字的一部 │
              分。如果這個模式匹配一個字符,則把這個字符作爲一個單字字符對待。在      Windows 平臺上,字有任何不 │
              是空格、tab、或換行的字符組成。在     Unix 下,字由數字、字母或下劃線組成。

       unknown_pending
               unknown     用它來記錄正在查找的命令。在 unknown     在自身上無窮遞歸的地方,使用它來檢測錯誤。在
              unknown     返回前刪除它的值。

參見 SEE ALSO

       info(n), re_syntax(n)

關鍵字 KEYWORDS

       auto-exec, auto-load, library, unknown, word, whitespace

[中文版維護人]

       寒蟬退士

[中文版最新更新]

       2001/12/06

《中國 Linux 論壇 man 手冊頁翻譯計劃》:

       http://cmpp.linuxforum.net

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh