- 名字
- tclsh - 包含 Tcl 解释器的简单的 shell
- 总览
- tclsh ?fileName arg arg ...?
- 描述
- 脚本文件
- 变量
- argc
- argv
- argv0
- tcl_interactive
- 提示符
- 关键字
tclsh - 包含 Tcl 解释器的简单的 shell
tclsh ?fileName arg arg ...?
Tclsh 是一个 shell
类应用程序,从它的标准输入或一个文件读 Tcl 命令并对其求值(evaluate)。
如果你不加参数的调用,则它交互式的执行,从标准输入读
Tcl
命令并向标准输出打印命令结果和出错信息。它一直运行直到调用 exit
命令或在它的标准输入上读到文件结束。如果在用户的主(home)目录里存在一个文件
.tclshrc (或在 Windows 平台上的 tclshrc.tcl),在从标准输入读第一条命令之前,tclsh
把这个文件作为一个 Tcl 脚本来求值。
如果加参数调用 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
启动时,因为第二行的反斜线导致第三行被作为第二行注释的一部分,它把所有三行都作为注释对待。
Tclsh 设置了下列 Tcl 变量:
- argc
-
包含 arg 参数的个数(没有则为 0),不包括脚本文件的名字。
- argv
-
包含一个 Tcl 列表,其元素依次是 arg 参数,如果没有 arg
参数则是一个空串。
- argv0
-
如果指定了 fileName 则在此包含。否则。包含调用 tclsh
使用的名字。
- tcl_interactive
-
如果交互式运行 tclsh 则包含 1(不指定
fileName 并且标准输入是一个终端类设备),否则是 0。
当交互式的调用 tclsh 时,它通常为每条命令提示“%”。你可以通过设置变量 tcl_prompt1
和 tcl_prompt2 来改变提示符。如果存在变量
tcl_prompt1 则它必须由一个输出一个提示符的 Tcl
脚本组成;tclsh 对 tcl_prompt1
中的脚本求值而不是输出一个提示符。变量 tcl_prompt2
以类似的方式用在键入了换行而当前命令却不完整的时候;如果没设置
tcl_prompt2 则对不完整的命令不给以提示符。
参数, 解释器, 提示符, 脚本文件, shell
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.
[中文版维护人]
寒蝉退士
[中文版最新更新]
2001/06/20
《中国 Linux 论坛 man 手册页翻译计划》:
www.CMPP.net