______________________________________________________________________________
NAME
unknown - 处 理 对 使 用 不 存 在 命 令 的 尝 试
总 览 SYNOPSIS
unknown cmdName ?arg arg ...? _________________________________________________________________
描 述 DESCRIPTION
在 一 个 脚 本 尝 试 调 用 一 个 不 存 在 的 命 令 的 时 候 , Tcl 解 释 器 将 调 用 这 个 命 令 。 unknown 的 实 现 不 是 Tcl 核 心 的 一 部 分 ; 但 是 在 Tcl 启 动 的 时 候 , 它 是 一 个 被 缺 省 定 义 的 库 过 程 。 你 可 以 覆 盖 这 个 缺 省 的 unknown 来 改 变 它 的 功 能 。 如 果 Tcl 解 释 器 遇 到 一 个 命 令 名 而 没 有 为 它 一 个 定 义 了 的 命 令 , 则 Tcl 检 查 是 否 存 在 一 个 叫 unknown 的 命 令 。 如 果 没 有 这 个 命 令 , 则 解 释 器 返 回 一 个 错 误 。 如 果 unknown 命 令 存 在 , 则 调 用 它 并 加 上 由 被 完 全 替 换 过 的 名 字 组 成 的 参 数 和 给 最 初 的 不 存 在 的 命 令 的 参 数 。 典 型 的 , unknown 命 令 做 在 库 目 录 中 查 找 名 字 是 cmdName 的 一 个 命 令 过 程 , 把 缩 写 的 命 令 名 扩 展 成 全 长 的 名 字 , 或 自 动 的 作 为 子 进 程 执 行 未 知 命 令 等 事 情 。 在 这 些 情 况 下 (比 如 扩 展 缩 写 ) unknown 将 轻 微 的 改 变 最 初 的 命 令 , 接 着 (重 )执 行 它 。 unknown 命 令 的 结 果 被 用 做 最 初 的 不 存 在 的 命 令 的 结 果 。
unknown 的 缺 省 实 现 的 行 为 如 下 。 它 首 先 调 用 auto_load 库 过 程 来 装 载 命 令 , 接 着 它 用 最 初 的 参 数 执 行 最 初 的 命 令 。 如 果 自 动 装 载 失 败 则 unknown 调 用 auto_execok 来 看 是 否 有 一 个 叫 cmd 的 可 执 行 文 件 。 如 果 有 , 它 调 用 Tcl exec 命 令 并 加 上 cmd 和 所 有 args 作 为 参 数 。 如 果 cmd 不 可 自 动 执 行 , unknown 检 查 是 否 在 顶 层 调 用 这 个 命 令 并 在 任 何 脚 本 的 外 部 。 如 果 是 这 样 , 则 unknown 进 行 两 个 额 外 的 步 骤 。 首 先 它 参 看 cmd 是 否 是 下 列 三 种 形 式 之 一 : !!, !event, 或 ^old^new?^?。 如 果 是 这 样 , 则 unknown 用 与 csh 相 同 的 方 式 对 这 些 构 造 (construct)进 行 历 史 替 换 。 最 后 , unknown 检 查 cmd 是 否 是 一 个 现 存 的 Tcl 命 令 的 缩 写 。 如 果 是 , 它 扩 展 命 令 名 并 用 最 初 的 参 数 执 行 这 个 命 令 。 如 果 上 述 努 力 都 不 能 执 行 这 个 命 令 , unknown 返 回 一 个 错 误 。 如 果 定 义 了 全 局 变 量 auto_noload , 则 跳 过 自 动 装 载 步 骤 。 如 果 定 义 了 全 局 变 量 auto_noexec, 则 跳 过 自 动 执 行 步 骤 。 在 通 常 的 条 件 下 , unknown 的 返 回 值 就 是 最 终 执 行 的 命 令 的 返 回 值 。
参 见 SEE ALSO
关 键 字 KEYWORDS
error, non-existent command
[中 文 版 维 护 人 ]
寒 蝉 退 士
[中 文 版 最 新 更 新 ]
2001/09/01
《 中 国 Linux 论 坛 man 手 册 页 翻 译 计 划 》 :
跋
本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh