Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / man / man1 / tclsh.1
CommitLineData
920dae64
AT
1'\"
2'\" Copyright (c) 1993 The Regents of the University of California.
3'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
4'\"
5'\" See the file "license.terms" for information on usage and redistribution
6'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
7'\"
8'\" RCS: @(#) $Id: tclsh.1,v 1.8 2003/02/13 22:03:34 kennykb Exp $
9'\"
10'\" The definitions below are for supplemental macros used in Tcl/Tk
11'\" manual entries.
12'\"
13'\" .AP type name in/out ?indent?
14'\" Start paragraph describing an argument to a library procedure.
15'\" type is type of argument (int, etc.), in/out is either "in", "out",
16'\" or "in/out" to describe whether procedure reads or modifies arg,
17'\" and indent is equivalent to second arg of .IP (shouldn't ever be
18'\" needed; use .AS below instead)
19'\"
20'\" .AS ?type? ?name?
21'\" Give maximum sizes of arguments for setting tab stops. Type and
22'\" name are examples of largest possible arguments that will be passed
23'\" to .AP later. If args are omitted, default tab stops are used.
24'\"
25'\" .BS
26'\" Start box enclosure. From here until next .BE, everything will be
27'\" enclosed in one large box.
28'\"
29'\" .BE
30'\" End of box enclosure.
31'\"
32'\" .CS
33'\" Begin code excerpt.
34'\"
35'\" .CE
36'\" End code excerpt.
37'\"
38'\" .VS ?version? ?br?
39'\" Begin vertical sidebar, for use in marking newly-changed parts
40'\" of man pages. The first argument is ignored and used for recording
41'\" the version when the .VS was added, so that the sidebars can be
42'\" found and removed when they reach a certain age. If another argument
43'\" is present, then a line break is forced before starting the sidebar.
44'\"
45'\" .VE
46'\" End of vertical sidebar.
47'\"
48'\" .DS
49'\" Begin an indented unfilled display.
50'\"
51'\" .DE
52'\" End of indented unfilled display.
53'\"
54'\" .SO
55'\" Start of list of standard options for a Tk widget. The
56'\" options follow on successive lines, in four columns separated
57'\" by tabs.
58'\"
59'\" .SE
60'\" End of list of standard options for a Tk widget.
61'\"
62'\" .OP cmdName dbName dbClass
63'\" Start of description of a specific option. cmdName gives the
64'\" option's name as specified in the class command, dbName gives
65'\" the option's name in the option database, and dbClass gives
66'\" the option's class in the option database.
67'\"
68'\" .UL arg1 arg2
69'\" Print arg1 underlined, then print arg2 normally.
70'\"
71'\" RCS: @(#) $Id: man.macros,v 1.4 2000/08/25 06:18:32 ericm Exp $
72'\"
73'\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
74.if t .wh -1.3i ^B
75.nr ^l \n(.l
76.ad b
77'\" # Start an argument description
78.de AP
79.ie !"\\$4"" .TP \\$4
80.el \{\
81. ie !"\\$2"" .TP \\n()Cu
82. el .TP 15
83.\}
84.ta \\n()Au \\n()Bu
85.ie !"\\$3"" \{\
86\&\\$1 \\fI\\$2\\fP (\\$3)
87.\".b
88.\}
89.el \{\
90.br
91.ie !"\\$2"" \{\
92\&\\$1 \\fI\\$2\\fP
93.\}
94.el \{\
95\&\\fI\\$1\\fP
96.\}
97.\}
98..
99'\" # define tabbing values for .AP
100.de AS
101.nr )A 10n
102.if !"\\$1"" .nr )A \\w'\\$1'u+3n
103.nr )B \\n()Au+15n
104.\"
105.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
106.nr )C \\n()Bu+\\w'(in/out)'u+2n
107..
108.AS Tcl_Interp Tcl_CreateInterp in/out
109'\" # BS - start boxed text
110'\" # ^y = starting y location
111'\" # ^b = 1
112.de BS
113.br
114.mk ^y
115.nr ^b 1u
116.if n .nf
117.if n .ti 0
118.if n \l'\\n(.lu\(ul'
119.if n .fi
120..
121'\" # BE - end boxed text (draw box now)
122.de BE
123.nf
124.ti 0
125.mk ^t
126.ie n \l'\\n(^lu\(ul'
127.el \{\
128.\" Draw four-sided box normally, but don't draw top of
129.\" box if the box started on an earlier page.
130.ie !\\n(^b-1 \{\
131\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
132.\}
133.el \}\
134\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
135.\}
136.\}
137.fi
138.br
139.nr ^b 0
140..
141'\" # VS - start vertical sidebar
142'\" # ^Y = starting y location
143'\" # ^v = 1 (for troff; for nroff this doesn't matter)
144.de VS
145.if !"\\$2"" .br
146.mk ^Y
147.ie n 'mc \s12\(br\s0
148.el .nr ^v 1u
149..
150'\" # VE - end of vertical sidebar
151.de VE
152.ie n 'mc
153.el \{\
154.ev 2
155.nf
156.ti 0
157.mk ^t
158\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
159.sp -1
160.fi
161.ev
162.\}
163.nr ^v 0
164..
165'\" # Special macro to handle page bottom: finish off current
166'\" # box/sidebar if in box/sidebar mode, then invoked standard
167'\" # page bottom macro.
168.de ^B
169.ev 2
170'ti 0
171'nf
172.mk ^t
173.if \\n(^b \{\
174.\" Draw three-sided box if this is the box's first page,
175.\" draw two sides but no top otherwise.
176.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
177.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
178.\}
179.if \\n(^v \{\
180.nr ^x \\n(^tu+1v-\\n(^Yu
181\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
182.\}
183.bp
184'fi
185.ev
186.if \\n(^b \{\
187.mk ^y
188.nr ^b 2
189.\}
190.if \\n(^v \{\
191.mk ^Y
192.\}
193..
194'\" # DS - begin display
195.de DS
196.RS
197.nf
198.sp
199..
200'\" # DE - end display
201.de DE
202.fi
203.RE
204.sp
205..
206'\" # SO - start of list of standard options
207.de SO
208.SH "STANDARD OPTIONS"
209.LP
210.nf
211.ta 5.5c 11c
212.ft B
213..
214'\" # SE - end of list of standard options
215.de SE
216.fi
217.ft R
218.LP
219See the \\fBoptions\\fR manual entry for details on the standard options.
220..
221'\" # OP - start of full description for a single option
222.de OP
223.LP
224.nf
225.ta 4c
226Command-Line Name: \\fB\\$1\\fR
227Database Name: \\fB\\$2\\fR
228Database Class: \\fB\\$3\\fR
229.fi
230.IP
231..
232'\" # CS - begin code excerpt
233.de CS
234.RS
235.nf
236.ta .25i .5i .75i 1i
237..
238'\" # CE - end code excerpt
239.de CE
240.fi
241.RE
242..
243.de UL
244\\$1\l'|0\(ul'\\$2
245..
246.TH tclsh 1 "" Tcl "Tcl Applications"
247.BS
248'\" Note: do not modify the .SH NAME line immediately below!
249.SH NAME
250tclsh \- Simple shell containing Tcl interpreter
251.SH SYNOPSIS
252\fBtclsh\fR ?\fIfileName arg arg ...\fR?
253.BE
254
255.SH DESCRIPTION
256.PP
257\fBTclsh\fR is a shell-like application that reads Tcl commands
258from its standard input or from a file and evaluates them.
259If invoked with no arguments then it runs interactively, reading
260Tcl commands from standard input and printing command results and
261error messages to standard output.
262It runs until the \fBexit\fR command is invoked or until it
263reaches end-of-file on its standard input.
264If there exists a file \fB.tclshrc\fR (or \fBtclshrc.tcl\fR on
265the Windows platforms) in the home directory of
266the user, \fBtclsh\fR evaluates the file as a Tcl script
267just before reading the first command from standard input.
268
269.SH "SCRIPT FILES"
270.PP
271If \fBtclsh\fR is invoked with arguments then the first argument
272is the name of a script file and any additional arguments
273are made available to the script as variables (see below).
274Instead of reading commands from standard input \fBtclsh\fR will
275read Tcl commands from the named file; \fBtclsh\fR will exit
276when it reaches the end of the file.
277.VS 8.4
278The end of the file may be marked either by the physical end of
279the medium, or by the character, '\\032' ('\\u001a', control-Z).
280If this character is present in the file, the \fBtclsh\fR application
281will read text up to but not including the character. An application
282that requires this character in the file may safely encode it as
283``\\032'', ``\\x1a'', or ``\\u001a''; or may generate it by use of commands
284such as \fBformat\fR or \fBbinary\fR.
285.VE
286There is no automatic evaluation of \fB.tclshrc\fR when the name
287of a script file is presented on the \fBtclsh\fR command
288line, but the script file can always \fBsource\fR it if desired.
289.PP
290If you create a Tcl script in a file whose first line is
291.CS
292\fB#!/usr/local/bin/tclsh\fR
293.CE
294then you can invoke the script file directly from your shell if
295you mark the file as executable.
296This assumes that \fBtclsh\fR has been installed in the default
297location in /usr/local/bin; if it's installed somewhere else
298then you'll have to modify the above line to match.
299Many UNIX systems do not allow the \fB#!\fR line to exceed about
30030 characters in length, so be sure that the \fBtclsh\fR
301executable can be accessed with a short file name.
302.PP
303An even better approach is to start your script files with the
304following three lines:
305.CS
306\fB#!/bin/sh
307# the next line restarts using tclsh \e
308exec tclsh "$0" "$@"\fR
309.CE
310This approach has three advantages over the approach in the previous
311paragraph. First, the location of the \fBtclsh\fR binary doesn't have
312to be hard-wired into the script: it can be anywhere in your shell
313search path. Second, it gets around the 30-character file name limit
314in the previous approach.
315Third, this approach will work even if \fBtclsh\fR is
316itself a shell script (this is done on some systems in order to
317handle multiple architectures or operating systems: the \fBtclsh\fR
318script selects one of several binaries to run). The three lines
319cause both \fBsh\fR and \fBtclsh\fR to process the script, but the
320\fBexec\fR is only executed by \fBsh\fR.
321\fBsh\fR processes the script first; it treats the second
322line as a comment and executes the third line.
323The \fBexec\fR statement cause the shell to stop processing and
324instead to start up \fBtclsh\fR to reprocess the entire script.
325When \fBtclsh\fR starts up, it treats all three lines as comments,
326since the backslash at the end of the second line causes the third
327line to be treated as part of the comment on the second line.
328.PP
329.VS
330You should note that it is also common practise to install tclsh with
331its version number as part of the name. This has the advantage of
332allowing multiple versions of Tcl to exist on the same system at once,
333but also the disadvantage of making it harder to write scripts that
334start up uniformly across different versions of Tcl.
335.VE
336
337.SH "VARIABLES"
338.PP
339\fBTclsh\fR sets the following Tcl variables:
340.TP 15
341\fBargc\fR
342Contains a count of the number of \fIarg\fR arguments (0 if none),
343not including the name of the script file.
344.TP 15
345\fBargv\fR
346Contains a Tcl list whose elements are the \fIarg\fR arguments,
347in order, or an empty string if there are no \fIarg\fR arguments.
348.TP 15
349\fBargv0\fR
350Contains \fIfileName\fR if it was specified.
351Otherwise, contains the name by which \fBtclsh\fR was invoked.
352.TP 15
353\fBtcl_interactive\fR
354Contains 1 if \fBtclsh\fR is running interactively (no
355\fIfileName\fR was specified and standard input is a terminal-like
356device), 0 otherwise.
357
358.SH PROMPTS
359.PP
360When \fBtclsh\fR is invoked interactively it normally prompts for each
361command with ``\fB% \fR''. You can change the prompt by setting the
362variables \fBtcl_prompt1\fR and \fBtcl_prompt2\fR. If variable
363\fBtcl_prompt1\fR exists then it must consist of a Tcl script
364to output a prompt; instead of outputting a prompt \fBtclsh\fR
365will evaluate the script in \fBtcl_prompt1\fR.
366The variable \fBtcl_prompt2\fR is used in a similar way when
367a newline is typed but the current command isn't yet complete;
368if \fBtcl_prompt2\fR isn't set then no prompt is output for
369incomplete commands.
370
371.SH "STANDARD CHANNELS"
372.PP
373See \fBTcl_StandardChannels\fR for more explanations.
374
375.SH "SEE ALSO"
376fconfigure(n), tclvars(n)
377
378.SH KEYWORDS
379argument, interpreter, prompt, script file, shell