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 腳 本 選 擇 某 個 二 進 制 文 件 來 運 行 )。 第 三 行 導 致 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), 不 包 括 腳 本 文 件 的 名 字 。

argv 包 含 一

個 Tcl 列 表 , 其 元 素 依 次 是 arg 參 數 , 如 果 沒 有 arg 參 數 則 是 一 個 空 串 。

argv0

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

tcl_interactive 如 果 交 互 式 運 行 tclsh 則 包 含 1(不 指 定 fileName 並 且 標 準 輸 入 是 一 個 終 端 類 設 備 ), 否 則 是 0。

提 示 符 PROMPTS

當 交 互 式 的 調 用 tclsh 時 , 它 通 常 爲 每 條 命 令 提 示 “%”。 你 可 以 通 過 設 置 變 量 tcl_prompt1 和 tcl_prompt2 來 改 變 提 示 符 。 如 果 存 在 變 量 tcl_prompt1 則 它 必 須 由 一 個 輸 出 一 個 提 示 符 的 Tcl 腳 本 組 成 ; tclsh 對 tcl_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