Provided by:
manpages-zh_1.5.1-1_all 
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