实战Tcl和TK程序设计 第2章 开始使用
时间:2007-06-30 来源:oychw
§2 开始使用
本章主要在不同的操作系统平台上运行Tcl与Tk,涉及的命令有: Source,console,info.
Wish即: windowing shell.
可以用在tcl的命令行使用source filename 导入文件.
#!/bin/sh
# Run wish from the users PATH \
exec wish -f "$0" ${1+"$@"}
优点:
1,二进制文件的位置不需要填入,它可以在你的 shell 查找路径中的任何地方。
2,突破了#!只有30个字符的限制
3,在shell中, 第2行是注释,第3行不是.但是在tcl中, \是连接符号,下一行依旧是注释.所以只有shell有机会执行第3行.exec 语句导致 shell 停止处理而启动 tclsh 来重新处理整个脚本。当 tclsh启动时,因为第二行的反斜线导致第三行被作为第二行注释的一部分,它把所有三行都作为注释对待。
${1+"$@"}
${1+"$@"} 的意思是判断$1是否设置过也就是定义过如果设置就设"$@"
而${1:+"$@"} 是判断是否空串如果不是空串那就设置"$@"
Some shells expand "$@" like "" (a single empty argument) when there
are no arguments. ${1+"$@"} correctly expands to no arguments on
those shells.
Example 2-4 The EchoArgs script
# Tcl script to echo command line arguments
puts "Program: $argv0"
puts "Number of arguments: $argc"
set i 0
foreach arg $argv {
puts "Arg $i: $arg"
incr i
}
Table 2-1. Wish command line options |
|
-colormap new |
Use a new private colormap. See page 624. |
-display display |
Use the specified X display. UNIX only. |
-geometry geometry |
The size and position of the window. See page 658. |
-name name |
Specify the Tk application name. See page 648. |
-sync |
Run X synchronously. UNIX only. |
-use id |
Use the window specified by id for the main window. See page 667. |
-visual visual |
Specify the visual for the main window. See page 624. |
-- |
Terminate options to wish. |
Table 2-2. Variables defined by tclsh and wish |
|
argc |
The number of command-line arguments. |
argv |
A list of the command-line arguments. |
argv0 |
The name of the script being executed. If being used interactively, argv0 is the name of the shell program. |
embed_args |
The list of arguments in the <EMBED> tag. Tcl applets only. See page 314. |
env |
An array of the environment variables. See page 124. |
tcl_interactive |
True (one) if the tclsh is prompting for commands. |
tcl_library |
The script library directory. |
tcl_patchLevel |
Modified version number, e.g., 8.0b1. |
tcl_platform |
Array containing operating system information. See page 192. |
tcl_prompt1 |
If defined, this is a command that outputs the prompt. |
tcl_prompt2 |
If defined, this is a command that outputs the prompt if the current command is not yet complete. |
tcl_version |
Version number. |
auto_path |
The search path for script library directories. See page 172. |
auto_index |
A map from command name to a Tcl command that defines it. |
auto_noload |
If set, the library facility is disabled. |
auto_noexec |
If set, the auto execute facility is disabled. |
geometry |
(wish only). The value of the -geometry argument. |