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
稿本檔案的第一行是
則如果你把它標記為可執行的,接著就可以直接在你的
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