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