______________________________________________________________________________
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 脚 本 选 择 某
个 二 进 制 文 件
来 运 行 )。 第 三
行 导 致 sh 和 tclsh
两 者 来 处 理 脚
本 , 但 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), 不 包 括 脚 本 文 件 的 名 字 。
个 Tcl 列 表 , 其 元 素 依 次 是 arg 参 数 , 如 果 没 有 arg 参 数 则 是 一 个 空 串 。 如 果 指 定 了 fileName 则 在 此 包 含 。 否 则 。 包 含 调 用 tclsh 使 用 的 名 字 。 tcl_interactive 如 果 交 互 式 运 行 tclsh 则 包 含 1(不 指 定 fileName 并 且 标 准 输 入 是 一 个 终 端 类 设 备 ), 否 则 是 0。 提 示 符 PROMPTS当 交 互 式 的 调 用 tclsh 时 , 它 通 常 为 每 条 命 令 提 示 “%”。 你 可 以 通 过 设 置 变 量 tcl_prompt1 和 tcl_prompt2 来 改 变 提 示 符 。 如 果 存 在 变 量 tcl_prompt1 则 它 必 须 由 一 个 输 出 一 个 提 示 符 的 Tcl 脚 本 组 成 ; tclsh 对 tcl_prompt1 中 的 脚 本 求 值 而 不 是 输 出 一 个 提 示 符 。 变 量 tcl_prompt2 以 类 似 的 方 式 用 在 键 入 了 换 行 而 当 前 命 令 却 不 完 整 的 时 候 ; 如 果 没 设 置 tcl_prompt2 则 对 不 完 整 的 命 令 不 给 以 提 示 符 。 关 键 字 KEYWORDSargument, interpreter, prompt, script file, shell [中 文 版 维 护 人 ]寒 蝉 退 士 [中 文 版 最 新 更 新 ]2001/06/20 《 中 国 linux论 坛 man手 册 页 翻 译 计 划 》 :跋本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh |