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