About Us Documentation

Contact Site Map




tclsh(1)                Tcl Applications



tclsh - Simple shell containing Tcl interpreter


tclsh ?fileName arg arg ...?


Tclsh 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 com-
     mand results and error messages to standard output.  It runs
     until  the  exit command is invoked or until it reaches end-
     of-file on its standard  input.   If  there  exists  a  file
     .tclshrc  in the home directory of the user, tclsh evaluates
     the file as a Tcl script just before reading the first  com-
     mand from standard input.


If tclsh 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 tclsh will
     read Tcl commands from the named file;  tclsh will exit when
     it  reaches  the  end  of  the  file.  There is no automatic
     evaluation of .tclshrc in this case, but the script file can
     always source it if desired.

     If you create a Tcl script in a file whose first line is
     then you can invoke the script file directly from your shell
     if you mark the file as executable.  This assumes that tclsh
     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 #! line to exceed about 30 charac-
     ters in length, so be sure that the tclsh executable can  be
     accessed with a short file name.

     An even better approach is to start your script  files  with
     the following three lines:
          # the next line restarts using tclsh \
          exec tclsh "$0" "$@"
     This approach has three advantages over the approach in  the
     previous paragraph.  First, the location of the tclsh binary
     doesn't have to be hard-wired into the script:   it  can  be

Tcl                                                             1

tclsh(1)                Tcl Applications

     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 tclsh is itself a
     shell script (this is done on some systems in order to  han-
     dle  multiple architectures or operating systems:  the tclsh
     script selects one of several binaries to run).   The  three
     lines cause both sh and tclsh to process the script, but the
     exec is only executed by sh.  sh processes the script first;
     it  treats  the  second  line  as a comment and executes the
     third line.  The exec statement cause the shell to stop pro-
     cessing  and  instead  to  start  up  tclsh to reprocess the
     entire script.  When tclsh 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.


Tclsh sets the following Tcl variables:

     argc           Contains a count of the number of  arg  argu-
                    ments  (0 if none), not including the name of
                    the script file.

     argv           Contains a Tcl list whose  elements  are  the
                    arg  arguments,  in order, or an empty string
                    if there are no arg arguments.

     argv0          Contains fileName if it was specified.   Oth-
                    erwise,  contains the name by which tclsh was

                    Contains 1 if tclsh is running  interactively
                    (no fileName was specified and standard input
                    is a terminal-like device), 0 otherwise.


When tclsh is invoked interactively it normally prompts  for
     each command with ``% ''.  You can change the prompt by set-
     ting the variables tcl_prompt1 and tcl_prompt2.  If variable
     tcl_prompt1  exists  then it must consist of a Tcl script to
     output a prompt;  instead of outputting a prompt tclsh  will
     evaluate   the   script   in   tcl_prompt1.    The  variable
     tcl_prompt2 is used in a similar way when a newline is typed
     but  the  current command isn't yet complete; if tcl_prompt2
     isn't set then no prompt is output for incomplete commands.


argument, interpreter, prompt, script file, shell

Tcl                                                             2

Prepared by Ready-to-Run Software, Inc. 

To return to the Ready-to-Run Software Super ReadyPak Table of contents please presshere


Email addresses listed on this site may  NOT be used for unsolicited commercial email.

Ready-to-Run Software, Inc Privacy Statement

Portions (c)Copyright, 1996-2005 by Ready-to-Run Software, Inc
(All rights reserved.)
212 Cedar Cove
Lansing, NY 14882
Phone: 607 533 UNIX (8649)
Fax: 607 533 4002