Manpages

______________________________________________________________________________

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
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/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_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