Manpages

______________________________________________________________________________

NAME

tclsh - 包 含 Tcl 解 释 器 的 简 单 的 shell

总 览 SYNOPSIS

tclsh ?fileName arg arg ...? _________________________________________________________________

描 述

Tclsh 是 一 个 shell 类 应 用 程 序 , 从 它 的 标 准 输 入 或 一 个 文 件 读 Tcl 命 令 并 对 其 求 值 (evaluate)。 如 果 你 不 加 参 数 的 调 用 , 则 它 交 互 式 的 执 行 , 从 标 准 输 入 读 Tcl 命 令 并 向 标 准 输 出 打 印 命 令 结 果 和 出 错 信 息 。 它 一 直 运 行 直 到 调 用 exit 命 令 或 在 它 的 标 准 输 入 上 读 到 文 件 结 束 。 如 果 在 用 户 的 主 (home)目 录 里 存 在 一 个 文 件 .tclshrc (或 在 Windows 平 台 上 的 tclshrc.tcl), 在 从 标 准 输 入 读 第 一 条 命 令 之 前 , tclsh 把 这 个 文 件 作 为 一 个 Tcl 脚 本 来 求 值 。

脚 本 文 件 SCRIPT FILES

如 果 加 参 数 调 用 tclsh 则 第 一 个 参 数 是 脚 本 文 件 的 名 字 而 任 何 额 外 的 参 数 作 为 给 脚 本 使 用 的 变 量 (见 后 )。 tclsh 将 从 指 名 的 文 件 中 读 Tcl 命 令 而 不 是 从 标 准 输 入 读 取 ; 当 到 达 文 件 结 束 时 tclsh 将 退 出 。 在 这 种 情 况 下 不 自 动 的 对 .tclshrc 求 值 , 如 果 需 要 的 话 , 脚 本 文 件 总 是 可 以 source(包 含 )它 。 如 果 你 建 立 的 Tcl 脚 本 文 件 的 第 一 行 是

#!/usr/local/bin/tclsh 则 如 果 你 把 它 标 记 为 可 执 行 的 , 接 着 就 可 以 直 接 在 你 的 shell 中 调 用 这 个 脚 本 文 件 。 这 里 假 定 了 tclsh 被 安 装 在 缺 省 的 位 置 /usr/local/bin; 如 果 它 被 安 装 在 其 他 地 方 , 那 么 你 需 要 修 改 上 述 行 来 匹 配 之 。 许 多 UNIX 系 统 不 允 许 #! 行 超 出 30 个 字 符 的 长 度 , 所 以 要 确 定 tclsh 可 执 行 文 件 能 被 用 短 文 件 名 访 问 。 一 个 更 好 的 途 径 是 用 下 面 三 行 来 开 始 你 的 脚 本 文 件 :
#!/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"
这 种 方 法 比 起 前 面 的 段 落 有 三 个 好 处 。 首 先 , tclsh 二 进 制 文 件 的 位 置 不 需 要 填 入 (hard-wired into) 脚 本 中 : 它 可 以 在 你 的 shell 查 找 路 径 中 的 任 何 地 方 。 其 次 , 他 超 越 了 (get around)了 上 种 方 法 的 30 字 符 的 文 件 名 的 限 制 。 第 三 , 这 种 方 法 在 tclsh 自 身 也 是 shell 脚 本 时 仍 可 运 行 (一 些 系 统 要 处 理 多 体 系 或 操 作 系 统 : tclsh 脚 本 选 择 某 个 二 进 制 文 件 来 运 行 )。 第 三 行 导 致 shtclsh 两 者 来 处 理 脚 本 , 但 exec 只 被 sh 执 行 。 sh 首 先 处 理 脚 本 文 件 ; 它 把 第 二 行 作 为 脚 本 文 件 对 待 并 执 行 第 三 行 。 exec 语 句 导 致 shell 停 止 处 理 而 启 动 tclsh 来 重 新 处 理 整 个 脚 本 。 当 tclsh 启 动 时 , 因 为 第 二 行 的 反 斜 线 导 致 第 三 行 被 作 为 第 二 行 注 释 的 一 部 分 , 它 把 所 有 三 行 都 作 为 注 释 对 待 。

You should note that it is also common practise to install tclsh with its version number as part of the name. This has the advantage of allowing multiple versions of Tcl to exist on the same system at once, but also the disadvantage of making it harder to write scripts that start up uniformly across different versions of Tcl.

变 量 VARIABLES

Tclsh 设 置 了 下 列 Tcl 变 量 :

argc 包 含

arg 参 数 的 个 数 (没 有 则 为 0), 不 包 括 脚 本 文 件 的 名 字 。

argv 包 含 一

个 Tcl 列 表 , 其 元 素 依 次 是 arg 参 数 , 如 果 没 有 arg 参 数 则 是 一 个 空 串 。

argv0

如 果 指 定 了 fileName 则 在 此 包 含 。 否 则 。 包 含 调 用 tclsh 使 用 的 名 字 。

tcl_interactive 如 果 交 互 式 运 行 tclsh 则 包 含 1(不 指 定 fileName 并 且 标 准 输 入 是 一 个 终 端 类 设 备 ), 否 则 是 0。

提 示 符 PROMPTS

当 交 互 式 的 调 用 tclsh 时 , 它 通 常 为 每 条 命 令 提 示 “%”。 你 可 以 通 过 设 置 变 量 tcl_prompt1tcl_prompt2 来 改 变 提 示 符 。 如 果 存 在 变 量 tcl_prompt1 则 它 必 须 由 一 个 输 出 一 个 提 示 符 的 Tcl 脚 本 组 成 ; tclshtcl_prompt1 中 的 脚 本 求 值 而 不 是 输 出 一 个 提 示 符 。 变 量 tcl_prompt2 以 类 似 的 方 式 用 在 键 入 了 换 行 而 当 前 命 令 却 不 完 整 的 时 候 ; 如 果 没 设 置 tcl_prompt2 则 对 不 完 整 的 命 令 不 给 以 提 示 符 。

关 键 字 KEYWORDS

argument, interpreter, prompt, script file, shell

[中 文 版 维 护 人 ]

寒 蝉 退 士

[中 文 版 最 新 更 新 ]

2001/06/20

《 中 国 linux论 坛 man手 册 页 翻 译 计 划 》 :

http://cmpp.linuxforum.net

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh