Provided by: manpages-zh_1.5.1-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 start                                                 |
       tcl_startOfNextWord str start                                           |
       tcl_startOfPreviousWord str start                                       |
       tcl_wordBreakAfter str start                                            |
       tcl_wordBreakBefore str start                                           |
_________________________________________________________________

ä»é›ç´ INTRODUCTION
       Tcl       為公共需求的å¼é„]å«äº†ä¸€       Tcl       éŽç¨‹åº«ã€‚在       Tcl
       庫中定義的éŽç¨‹æ˜¯é©ç”¨æ–¼å¤šç¨®ä¸åŒçš„æ‡‰ç”¨çš„通用éŽç¨‹ã€‚用     info     library
       命令返回       Tcl       庫的ä½ç½®ã€‚除了這       Tcl        庫之外,æ¯-
       蚗野帠q常都有它自己的支æŒéŽç¨‹åº«ï¼›é€™è‡wçš„ä½ç½®é€šå¸¸ç”¨         $app_library
       全局變é‡çš„馴Xï¼Œé€™è£  app  是應用的å字。例如,Tk   庫的ä½ç½®ä¿æŒåœ¨è®Šé‡
       $tk_library 中。

       n訪å•在    Tcl    庫中的éŽç¨‹ï¼Œä¸€èš—野怹雩    source    (載入)庫中的檔案
       init.tcl,例如,Tcl 命令
              source [file join [info library] init.tcl]
       如果在一蚗野峈   Tcl_AppInit    éŽç¨‹ä¸­èª¿ç”¨äº†åº«éŽç¨‹    Tcl_Init,則這(-
       茈[載)將自動發生。在   init.tcl  中的代碼將定義  unknown  éŽç¨‹å’Œä½¿ç”¨ä¸‹-
       惟w義的自動è£è¼‰æ©Ÿåˆ¶å®‰æŽ’å…¶ä»–éŽç¨‹åœ¨éœ€n時è£è¼‰ã€‚

å‘Rä»OéLç¨{ COMMAND PROCEDURES
       在 Tcl 庫中æä¾›äº†ä¸‹åˆ—éŽç¨‹:

       auto_execok cmd
              ç¢ºå®šæ˜¯å¦æœ‰ä¸€èŒˆs        cmd        的一茈i執行檔案或        shell
              內置命令。如果有,它返回n傳éžçµ¦    exec        來執行這茈s   cmd
              çš„å¯åŸ·è¡Œæª”案或         shell             å…§ç½®å‘½ä»¤çš„é‚£äº›åƒæ•¸çš„一-
              茼C表。如果沒有,它返回一茠臟瞗C這-
              茤Rä»¤æª¢æŸ¥åœ¨ç•¶å‰æŸ¥æ‰¾è·¯å¾‘中目錄(ç”±                            PATH
              環境變é‡çµ¦å‡º)ï¼Œåœ¨å…¶ä¸­æŸ¥æ‰¾å«  cmd     的一茈i執行檔案。在 Windows
              å­•x上,查找被展開為相åŒçš„目錄和與 exec      使用相åŒçš„æª”åæ“´å±•。
              Auto_exec                   在一茈s                   auto_execs
              的數組中記ä½ä»¥å‰æŸ¥æ‰¾çš„ä¿¡æ¯ï¼›é€™é¿å…在將來調用相åŒçš„           cmd
              時進行路徑查找。å¯ä»¥ä½¿ç”¨å‘½ä»¤  auto_reset      來強  auto_execok
              忘掉緩存的信æ¯ã€‚

       auto_import pattern
              在  namespace  import  期間調用  Auto_import  來查看用   pattern
              指定的導入命令是å¦é§ç•™åœ¨ä¸€    自動è£è¼‰çš„庫中。如果是,則è£è¼‰é€™-
              茤R令,這樣n建立導入連接的解釋器就å¯ä»¥ç²å¾—它怴C如果這-
              茤R令ä¸é§ç•™åœ¨è‡ªå‹•è£è¼‰åº«ä¸­ï¼Œauto_import 什麼都ä¸åšã€‚

       auto_load cmd
              這茤R令嘗試è£è¼‰ä¸€èŒˆsåš   cmd   çš„   Tcl    命令的定義,它查找一-
              èŒè‡èå‹å¦è£ä½è¼è·çºå¾|,它是一茤峖h茈媬的一茼C表。如果全局變é‡
              $auto_path           存在的話,則它給出這茼è¾å¦ä½¶è·¯å¾‘。如果沒有
              $auto_path                   變é‡ï¼Œå‰‡Y                TCLLIBPATH
              環境變é‡å­˜åœ¨å‰‡ä½¿ç”¨å®ƒã€‚å¦å‰‡è‡ªå‹•è£è¼‰è·¯å¾‘åªåŒ…å«                 Tcl
              庫目錄。在自動è£è¼‰è·¯å¾‘中的æ¯èŒˆåª¬ä¸­å¿…須有æz在這茈媬中定義的一-
              茤峖h茤R令的一蚗仵         tclIndex,和n被求虒佶æ¯èŒ¤R令的一-
              èš‘Z本。應當使用       auto_mkindex    å‘½ä»¤ä¾†è‡ªå‹•ç”Ÿæˆ    tclIndex
              檔案。如果在一è…薑瓿仵蚺之鋮 cmd     ,則求A當的稿本來建立這-
              茤R令。如果æˆå·¦æ¾ˆå ¨è‰‰F    cmd,則         auto_load     命令返回
              1。如果沒有給     cmd        的索引æ¢ç›®æˆ–這蚑Zæœ¬å¯¦éš›ä¸Šå®šç¾©çš„ä¸æ˜¯
              cmd(例如,因為索引信æ¯éŽæ™‚了),這茤R令返回      0。如果在處ç†é€™-
              èš‘Z本的時埽o生了一蚇欞~,則返回這蚇欞~。Auto_load        åªè®€é€™-
              è…薑瓿仵蚺@次並把它ä¿å­˜åˆ°æ•¸çµ„       auto_index        中;以後å°
              auto_load      的調用將在這èšï›‚掑分邠d      cmd          è€Œä¸æ˜¯-
              宣狗薑瓿仵蛂Cå¯ä»¥ç”¨å‘½ä»¤                               auto_reset
              刪除緩存的索引信æ¯ã€‚這將強制下一        auto_load   命令從ç£ç¢Ÿ-
              å¥sè£è¼‰ç´¢å¼•數據庫。

       auto_mkindex dir pattern pattern ...
              生æˆé©åˆæ–¼      auto_load      使用的一è…è–‘ç…„C這茤R令在      dir
              中查找å字匹é…任何      pattern     åƒæ•¸çš„æ‰€æœ‰æª”案(使用     glob
              命令進行匹é…),生æˆåœ¨æ‰€æœ‰åŒ¹é…的檔案的中定義的所有            Tcl
              命令éŽç¨‹çš„一è…è–‘ç…„A並且在       dir      中的一茈s      tclIndex
              的檔案中存儲索引信æ¯ã€‚如果未給出模å¼ï¼Œå‰‡å‡å®šæ¨¡å¼æ˜¯ *.tcl,例如
                     auto_mkindex foo *.tcl

              將在å­ç›®éŒ„讀   foo   ä¸­è®€å–æ‰€æœ‰   .tcl   檔案並生æˆä¸€è™“s索引檔案
              foo/tclIndex。

              Auto_mkindex é€šéŽæŠŠ Tcl 稿本載入(source)到一è“q解釋器中來分æžå®ƒ-
              怢繳妗ç é¶¡ç‘¼     proc å’Œ namespace 命令。擴展å¯ä»¥ä½¿ç”¨(沒有文件)
              auto_mkindex_parser             åŒ…ä¾†æ³¨å†Šå°             auto_load
              索引有所貢ç»çš„å…¶ä»–å‘½ä»¤ã€‚ä½ å¿…é ˆå¬                       auto.tcl
              來查看這是如何工作的。

              Auto_mkindex_old    在一茯蛫鴾ㄣ_雜的方å¼åˆ†æž    Tcl       稿本:
              如果任何一行包å«å­—     proc         為它的第一茼r,則å‡å®šå®ƒç‚ºä¸€-
              蚢L程定義並接å—這一行的下一茼r為這-
              蚢L程的åå­—ã€‚ä¸æ˜¯ä»¥é€™ç¨®æ–¹å¼å‡ºç¾çš„éŽç¨‹å®šç¾©(比如,在     proc  å‰-
              惘釭躓)å°‡ä¸è¢«ç·¨æŽ’索引。如果你的稿本包å«ã€Œå±éšªã€ä»£ç¢¼ï¼Œæ¯”如全局åˆå§‹åŒ–代碼或有特殊字符如
              $ã€*ã€[   或   ]    çš„éŽç¨‹å字,則你使用        auto_mkindex_old
              是更安全的。

       auto_reset
              銷毀被    auto_execok   å’Œ   auto_load   緩存的所有信æ¯ã€‚下次需-
              n這些信æ¯çš„æ™‚埜N從ç£ç¢Ÿå¥s讀å–。Auto_reset     還刪除在 auto-load
              中列出的所有éŽç¨‹ï¼Œé€™æ¨£ä¸‹æ¬¡ä½¿ç”¨å®ƒæ€æ¼å°•å°‡è£è¼‰å®ƒæ€æ¼•篞s了的復本。

       auto_qualify command namespace
              pç®—   command  的完全定的å字的一茼C表。這茼C表é¡åƒæ¨™æº–      Tcl
              解釋器用以查找命令的那虒çº|:        漸它在當å‰å字空間中查找這-
              茤R令,接著在全局å字空間中。相應的,如果                command
              是相å°çš„並且 namespace 䏿˜¯ ::,則返回的這茼C表兩茪葛:      一-
              茯Oç”±  namespace  界定Såœçš„command,如åŒå®ƒæ˜¯ä¸€èŒ¼b      namespace
              å字空間中的命令一樣;而å¦ä¸€                            command
              如åŒåœ¨å…¨å±€å字空間中的一茤R令一樣。å¦å‰‡ï¼Œå¦‚æžœ            command
              是絕å°çš„(它以   ::   為開始),或者   namespace   是    ::,則這-
              茼C表åªåŒ…å«ä¸€               command               ,如åŒå®ƒæ˜¯ä¸€-
              茼b全局å字空間中的命令一樣。

              在 Tcl  中自動è£è¼‰è¨­æ–½ä½¿ç”¨  Auto_qualify,用來生æˆè‡ªå‹•è£è¼‰ç´¢å¼•如
              pkgIndex.tcl,和用來在é‹è¡Œæ™‚進行實際的函數自動è£è¼‰ã€‚

       tcl_findLibrary basename version patch initScript enVarName varName
              這茤Rä»¤æ˜¯æ“´å±•åœ¨å®ƒæ€æ¼¯é´l化期間使用的一èšéƒ±ï™d找éŽç¨‹ã€‚擴展調用這-
              蚢L程來在多èšéƒ±ï¥çº|中查找它-
              æ€çŠ’L程。目錄å字的最後的構æˆéƒ¨åˆ†é€šå¸¸æ˜¯          basenameversion
              (例如,tk8.0),但在建造等級上他å¯èƒ½æ˜¯ã€Œåº«ã€ã€‚一旦找到就把
              initScript   檔案  source(加載)到解釋器中。把在其中找到檔案的那-
              茈媬ä¿å­˜åˆ°å…¨å±€è®Šé‡           varName        中。如果已經定義這-
              蚥僆q(比如,在應用åˆå§‹åŒ–期間用                                 C
              代碼),則ä¸é€²è¡ŒæŸ¥æ‰¾ã€‚å¦å‰‡åœ¨ä»¥ä¸‹é€™äº›ç›®éŒ„中進行查找:
              ç”±ç’°å¢ƒè®Šé‡       enVarName       給出åå­—çš„ç›®éŒ„ï¼›ç›¸å°æ–¼      Tcl
              åº«çš„ç›®éŒ„ï¼›ç›¸å°æ–¼(???  relative  to)åœ¨æ¨™æº–å®‰è£  bin  或  bin/arch
              中的å¯åŸ·è¡Œæª”æ¡ˆçš„ç›®éŒ„ï¼›ç›¸å°æ–¼åœ¨ç•¶å‰å»ºé€ æ¨¹ä¸­çš„å¯åŸ·è¡Œæª”æ¡ˆçš„ç›®éŒ„ï¼›ç›¸å°æ–¼åœ¨ä¸¦è¡Œå»ºé€ æ¨¹ä¸­çš„å¯åŸ·è¡Œæª”案的目錄。

       parray arrayName
              把數組            arrayName                中的所有元素的åå­—å’Œ-
              擖X到標準輸出上。ArrayName          必須是一蚢鴭       parray
              的調用者是å¯ä»¥è¨ªå•的一èšï›‚æ¸C它å¯ä»¥æ˜¯å±€éƒ¨çš„æˆ–全局的。

       tcl_endOfWord str start
              返回字符串    str    中在起始索引     start      之後出ç¾çš„第一- |
              茼rçµæŸ(end-of-word)ä½ç½®çš„çš„ç´¢å¼•ã€‚å®šç¾©å­—çµæŸä½ç½®ç‚ºåœ¨èµ·å§‹é»žä¹‹å¾Œè·Ÿéš¨åœ¨ç¬¬ä¸€-|
              茬ç’r字符後悸熔臚@-                                              |
              茷Då­—å­—ç¬¦ã€‚å¦‚æžœåœ¨èµ·å§‹é»žä¹‹å¾Œæ²’æœ‰å­—çµæŸä½ç½®å‰‡è¿”回     -1。關於 Tcl |
              如何確定茼r符是單字字符的詳情åƒè¦‹ä¸‹æŽª    tcl_wordchars      å’Œ |
              tcl_nonwordchars çš„æz。                                         |

       tcl_startOfNextWord str                                                 |
       start                                           |                       |
              返回字符串    str    中在起始索引     start      之後出ç¾çš„第一- |
              茼ré–‹å§‹(start-of-word)ä½ç½®çš„的索引。定義字開始ä½ç½®ç‚ºè·Ÿéš¨åœ¨ä¸€-    |
              茷D字字符後悸熔臚@-                                              |
              茬ç’r字符。如果在起始點之後沒有字開始ä½ç½®å‰‡è¿”回 -1。             |

       tcl_startOfPreviousWord str                                             |
       start                                       |                           |
              返回字符串    str    中在起始索引     start      之å‰å‡ºç¾çš„第一- |
              茼r開始(start-of-                                                |
              word)ä½ç½®çš„çš„ç´¢å¼•ã€‚å¦‚æžœåœ¨èµ·å§‹é»žä¹‹å‰æ²’有字開始ä½ç½®å‰‡è¿”回  -1。    |

       tcl_wordBreakAfter str                                                  |
       start                                            |                      |
              返回字符串     str     中在起始索引    start     之後出ç¾çš„第一- |
              茼r邊界的索引。如果在給定字符串中在起始點之後沒有邊界則返回      |
              -1。返回的索引åƒç…§çµ„æˆä¸€èššéŠ¢(字符)å°çš„第二茼r符。               |

       tcl_wordBreakBefore str                                                 |
       start                                           |                       |
              返回字符串    str    中在起始索引     start      之å‰å‡ºç¾çš„第一- |
              茼ré‚Šç•Œçš„ç´¢å¼•ã€‚å¦‚æžœåœ¨çµ¦å®šå­—ç¬¦ä¸²ä¸­åœ¨èµ·å§‹é»žä¹‹å‰æ²’有邊界則返回      |
              -1。返回的索引åƒç…§çµ„æˆä¸€èššéŠ¢(字符)å°çš„第二茼r符。

è®åƒé‡q VARIABLES
       在 Tcl 庫中的éŽç¨‹å®šç¾©æˆ–使用下列全局變é‡:

       auto_execs
              用它來記錄關於特定命令是å¦å­˜åœ¨ç‚ºå¯åŸ·è¡Œæª”案的信æ¯ã€‚

       auto_index
              auto_load 用它來ä¿å­˜å¾žç£ç¢Ÿè®€ä¾†çš„索引信æ¯ã€‚

       auto_noexec
              如果設置了任何A則 unknown     ä¸å˜—試自動執行任何命令。

       auto_noload
              如果設置了任何A則 unknown     ä¸å˜—試自動è£è¼‰ä»»ä½•命令。

       auto_path
              如果設置了它,則它必須包å«ä¸€èŒ¼é™µè˜†                          Tcl
              列表,給出在自動è£è¼‰æ“作中n查找的目錄。在啟動期間åˆå§‹åŒ–這-
              蚥僆qç‚ºä¾æ¬¡åŒ…å«:      在   TCLLIBPATH   環境變é‡ä¸­åˆ—出的目錄,由
              $tcl_library        變é‡å‘½å的目錄,$tcl_library    的父目錄,在
              $tcl_pkgPath     變é‡ä¸­åˆ—出的目錄。

       env(TCL_LIBRARY)
              如果設置了它,則它指定包å«åº«ç¨¿æœ¬çš„目錄的ä½ç½®(這蚥僆q的N被賦予
              tcl_library    變é‡ä¸¦è¢«    info   library   命令所返回)。如果這-
              蚥僆q未被設置,則使用é è¨­çš„C

       env(TCLLIBPATH)
              如果設置了它,則它必須包å«ä¸€èŒ¼é™µè˜†                          Tcl
              列表,給出在自動è£è¼‰æ“作期間n查找的目錄。必須用              Tcl
              æ ¼å¼æŒ‡å®šç›®éŒ„,使用「/ã€ä½œç‚ºåˆ†éš”符而ä¸ç®¡æ˜¯åœ¨ä»€éº¼å­•x上。åªåœ¨åˆå§‹åŒ–
              auto_path 的時唻æ´å¸ o蚥僆q。

       tcl_nonwordchars
              這蚥僆q包å«ä¸€èŒˆç¿°h表é”å¼ï¼Œç”¨æ–¼åƒ                   tcl_endOfWord |
              這樣的例程來識別一茼rç¬¦æ˜¯å¦æ˜¯ä¸€èŒ¼r的一部分。如果這èšç‹¾ï¹žït一-   |
              茼r符,則把這茼r符作為一茷Då­—(non-word)字符å°å¾…。在      Windows |
              å­•x上,空格ã€tabã€å’Œæ›è¡Œè¢«ä½œç‚ºéžå­—字符å°å¾…。在              Unix |
              下,除了數字ã€å­—æ¯å’Œä¸‹åŠƒç·šä¹‹å¤–ï¼Œæ‰€æœ‰å­—ç¬¦éƒ½æ˜¯éžå­—字符。           |

       tcl_wordchars                                                           ||
              這蚥僆q包å«ä¸€èŒˆç¿°h表é”å¼ï¼Œç”¨æ–¼åƒ                   tcl_endOfWord |
              這樣的例程來識別一茼rç¬¦æ˜¯å¦æ˜¯ä¸€èŒ¼r的一部分。如果這èšç‹¾ï¹žït一-   |
              茼r符,則把這茼r符作為一茬ç’r字符å°å¾…。在         Windows     - |
              å°ä¸Šï¼Œå­—æœ‰ä»»ä½•ä¸æ˜¯ç©ºæ ¼ã€tabã€æˆ–æ›è¡Œçš„字符組æˆã€‚在           Unix |
              下,字由數字ã€å­—æ¯æˆ–下劃線組æˆã€‚

       unknown_pending
               unknown      用它來記錄正在查找的命令。在  unknown       在自-
              ä¸Šç„¡çª®éžæ­¸çš„地方,使用它來檢測錯誤。在                   unknown
              返回å‰åˆªé™¤å®ƒçš„C

åæ‚è¦ SEE ALSO
       info(n), re_syntax(n)

é—é¶éé‰å­r KEYWORDS
       auto-exec, auto-load, library, unknown, word, whitespace

[]
      å¯HèŸè‚é€hå£h

[]
       2001/12/06

ã€mä¸ä»åœ Linuxè«è¢å£ manæ‰æ¼å†Ué»ç¿è¡è­é…påŠæ»ã€n:
       http://cmpp.linuxforum.net