tclsh.1
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:6k
- '"
- '" Copyright (c) 1993 The Regents of the University of California.
- '" Copyright (c) 1994-1996 Sun Microsystems, Inc.
- '"
- '" See the file "license.terms" for information on usage and redistribution
- '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- '"
- '" RCS: @(#) $Id: tclsh.1,v 1.8 2003/02/13 22:03:34 kennykb Exp $
- '"
- .so man.macros
- .TH tclsh 1 "" Tcl "Tcl Applications"
- .BS
- '" Note: do not modify the .SH NAME line immediately below!
- .SH NAME
- tclsh - Simple shell containing Tcl interpreter
- .SH SYNOPSIS
- fBtclshfR ?fIfileName arg arg ...fR?
- .BE
- .SH DESCRIPTION
- .PP
- fBTclshfR is a shell-like application that reads Tcl commands
- from its standard input or from a file and evaluates them.
- If invoked with no arguments then it runs interactively, reading
- Tcl commands from standard input and printing command results and
- error messages to standard output.
- It runs until the fBexitfR command is invoked or until it
- reaches end-of-file on its standard input.
- If there exists a file fB.tclshrcfR (or fBtclshrc.tclfR on
- the Windows platforms) in the home directory of
- the user, fBtclshfR evaluates the file as a Tcl script
- just before reading the first command from standard input.
- .SH "SCRIPT FILES"
- .PP
- If fBtclshfR is invoked with arguments then the first argument
- is the name of a script file and any additional arguments
- are made available to the script as variables (see below).
- Instead of reading commands from standard input fBtclshfR will
- read Tcl commands from the named file; fBtclshfR will exit
- when it reaches the end of the file.
- .VS 8.4
- The end of the file may be marked either by the physical end of
- the medium, or by the character, '\032' ('\u001a', control-Z).
- If this character is present in the file, the fBtclshfR application
- will read text up to but not including the character. An application
- that requires this character in the file may safely encode it as
- ``\032'', ``\x1a'', or ``\u001a''; or may generate it by use of commands
- such as fBformatfR or fBbinaryfR.
- .VE
- There is no automatic evaluation of fB.tclshrcfR when the name
- of a script file is presented on the fBtclshfR command
- line, but the script file can always fBsourcefR it if desired.
- .PP
- If you create a Tcl script in a file whose first line is
- .CS
- fB#!/usr/local/bin/tclshfR
- .CE
- then you can invoke the script file directly from your shell if
- you mark the file as executable.
- This assumes that fBtclshfR has been installed in the default
- location in /usr/local/bin; if it's installed somewhere else
- then you'll have to modify the above line to match.
- Many UNIX systems do not allow the fB#!fR line to exceed about
- 30 characters in length, so be sure that the fBtclshfR
- executable can be accessed with a short file name.
- .PP
- An even better approach is to start your script files with the
- following three lines:
- .CS
- fB#!/bin/sh
- # the next line restarts using tclsh e
- exec tclsh "$0" "$@"fR
- .CE
- This approach has three advantages over the approach in the previous
- paragraph. First, the location of the fBtclshfR binary doesn't have
- to be hard-wired into the script: it can be anywhere in your shell
- search path. Second, it gets around the 30-character file name limit
- in the previous approach.
- Third, this approach will work even if fBtclshfR is
- itself a shell script (this is done on some systems in order to
- handle multiple architectures or operating systems: the fBtclshfR
- script selects one of several binaries to run). The three lines
- cause both fBshfR and fBtclshfR to process the script, but the
- fBexecfR is only executed by fBshfR.
- fBshfR processes the script first; it treats the second
- line as a comment and executes the third line.
- The fBexecfR statement cause the shell to stop processing and
- instead to start up fBtclshfR to reprocess the entire script.
- When fBtclshfR starts up, it treats all three lines as comments,
- since the backslash at the end of the second line causes the third
- line to be treated as part of the comment on the second line.
- .PP
- .VS
- 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.
- .VE
- .SH "VARIABLES"
- .PP
- fBTclshfR sets the following Tcl variables:
- .TP 15
- fBargcfR
- Contains a count of the number of fIargfR arguments (0 if none),
- not including the name of the script file.
- .TP 15
- fBargvfR
- Contains a Tcl list whose elements are the fIargfR arguments,
- in order, or an empty string if there are no fIargfR arguments.
- .TP 15
- fBargv0fR
- Contains fIfileNamefR if it was specified.
- Otherwise, contains the name by which fBtclshfR was invoked.
- .TP 15
- fBtcl_interactivefR
- Contains 1 if fBtclshfR is running interactively (no
- fIfileNamefR was specified and standard input is a terminal-like
- device), 0 otherwise.
- .SH PROMPTS
- .PP
- When fBtclshfR is invoked interactively it normally prompts for each
- command with ``fB% fR''. You can change the prompt by setting the
- variables fBtcl_prompt1fR and fBtcl_prompt2fR. If variable
- fBtcl_prompt1fR exists then it must consist of a Tcl script
- to output a prompt; instead of outputting a prompt fBtclshfR
- will evaluate the script in fBtcl_prompt1fR.
- The variable fBtcl_prompt2fR is used in a similar way when
- a newline is typed but the current command isn't yet complete;
- if fBtcl_prompt2fR isn't set then no prompt is output for
- incomplete commands.
- .SH "STANDARD CHANNELS"
- .PP
- See fBTcl_StandardChannelsfR for more explanations.
- .SH "SEE ALSO"
- fconfigure(n), tclvars(n)
- .SH KEYWORDS
- argument, interpreter, prompt, script file, shell