______________________________________________________________________________
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 庫 之 外 , 每 個 應 用 通 常 都 有 它 自 己 的 支 持 過 程 庫 ; 這 個 庫 的 位 置 通 常 用 $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 pattern 在 namespace
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/tclIndex。
Auto_mkindex 通 過 把 Tcl 腳 本 載 入 (source)到 一 個 從 解 釋 器 中 來 分 析 它 們 並 監 視 執 行 的 proc 和 namespace 命 令 。 擴 展 可 以 使 用 (沒 有 文 檔 ) auto_mkindex_parser 包 來 註 冊 對 auto_load 索 引 有 所 貢 獻 的 其 他 命 令 。 你 必 須 閱 讀 auto.tcl 來 查 看 這 是 如 何 工 作 的 。
Auto_mkindex_old 在 一 個 相 對 不 復 雜 的 方 式 分 析 Tcl 腳 本 : 如 果 任 何 一 行 包 含 字 proc 爲 它 的 第 一 個 字 , 則 假 定 它 爲 一 個 過 程 定 義 並 接 受 這 一 行 的 下 一 個 字 爲 這 個 過 程 的 名 字 。 不 是 以 這 種 方 式 出 現 的 過 程 定 義 (比 如 , 在 proc 前 面 有 空 格 )將 不 被 編 排 索 引 。 如 果 你 的 腳 本 包 含 “危 險 ”代 碼 , 比 如 全 局 初 始 化 代 碼 或 有 特 殊 字 符 如 $、 *、 [ 或 ] 的 過 程 名 字 , 則 你 使 用 auto_mkindex_old 是 更 安 全 的 。
auto_reset 銷
燬 被 auto_execok 和
auto_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_wordchars 和
tcl_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
關 鍵 字 KEYWORDS
auto-exec, auto-load, library, unknown, word, whitespace
[中 文 版 維 護 人 ]
寒 蟬 退 士
[中 文 版 最 新 更 新 ]
2001/12/06
《 中 國 Linux 論 壇 man 手 冊 頁 翻 譯 計 劃 》 :
跋
本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh