Seth Woolley's Man Viewer

tclsh(1) - tclsh, tclsh - Simple shell containing Tcl interpreter - man 1 tclsh

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

tclsh(1)                       Tcl Applications                       tclsh(1)



NAME
       tclsh - Simple shell containing Tcl interpreter

SYNOPSIS
       tclsh ?fileName arg arg ...?


DESCRIPTION
       Tclsh  is  a  shell-like  application  that reads Tcl commands from its
       standard input or from a file(1,n) and evaluates them.  If invoked  with  no
       arguments  then  it runs interactively, reading Tcl commands from stan-
       dard input and printing command results and error(8,n) messages to  standard
       output.   It runs until the exit(3,n,1 builtins) command is invoked or until it reaches
       end-of-file on its standard input.  If there exists a file(1,n) .tclshrc (or
       tclshrc.tcl  on  the  Windows  platforms)  in(1,8) the home directory of the
       user, tclsh evaluates the file(1,n) as a Tcl script just before reading  the
       first command from standard input.


SCRIPT FILES
       If  tclsh is invoked with arguments then the first argument is the name
       of a script file(1,n) and any additional arguments are made available to the
       script  as  variables  (see  below).   Instead of reading commands from
       standard input tclsh will read(2,n,1 builtins) Tcl commands from the named(5,8) file(1,n);  tclsh
       will exit(3,n,1 builtins) when it reaches the end of the file.  The end of the file(1,n) may
       be marked either by the physical end of the medium, or by  the  charac-
       ter, '\032' ('\u001a', control-Z).  If this character is present in(1,8) the
       file(1,n), the tclsh application will read(2,n,1 builtins) text up to but not including  the
       character.  An application that requires this character in(1,8) the file(1,n) may
       safely encode it as ``\032'', ``\x1a'', or ``\u001a''; or may  generate
       it  by use of commands such as format or binary.  There is no automatic
       evaluation of .tclshrc when the name of a script file(1,n) is  presented  on
       the  tclsh  command  line,  but the script file(1,n) can always source it if(3,n)
       desired.

       If  you  create  a  Tcl  script  in(1,8)  a  file(1,n)  whose   first   line   is
       #!/usr/local/bin/tclsh  then  you  can  invoke the script file(1,n) directly
       from your shell if(3,n) you mark the file(1,n) as executable.  This assumes  that
       tclsh has been installed in(1,8) the default location in(1,8) /usr/local/bin;  if(3,n)
       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 characters in(1,8) length, so be sure that the tclsh  executable  can  be
       accessed with a short file(1,n) name.

       An  even better approach is to start your script files with the follow-
       ing three lines: #!/bin/sh # the next line restarts using tclsh \  exec(3,n,1 builtins)
       tclsh "$0" "$@" This approach has three advantages over the approach in(1,8)
       the previous paragraph.   First,  the  location  of  the  tclsh  binary
       doesn't  have  to be hard-wired into the script:  it can be anywhere in(1,8)
       your shell search path.  Second, it gets(3,n) around the  30-character  file(1,n)
       name  limit  in(1,8)  the previous approach.  Third, this approach will work
       even if(3,n) tclsh is itself a shell script (this is done on some systems in(1,8)
       order to handle 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(3,n,1 builtins) 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(3,n,1 builtins) statement cause the
       shell to stop processing and instead to start up tclsh to reprocess the
       entire script.  When tclsh starts up, it treats all three lines as com-
       ments, 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.

       You  should  note that it is also common practise to install tclsh with
       its version(1,3,5) 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(1,2)  scripts  that
       start up uniformly across different versions of Tcl.


VARIABLES
       Tclsh sets the following Tcl variables:

       argc           Contains  a  count  of the number of arg arguments (0 if(3,n)
                      none), not including the name of the script file.

       argv           Contains a Tcl list whose elements  are  the  arg  argu-
                      ments,  in(1,8) order, or an empty string(3,n) if(3,n) there are no arg
                      arguments.

       argv0          Contains fileName if(3,n) it was specified.  Otherwise,  con-
                      tains the name by which tclsh was invoked.

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


PROMPTS
       When  tclsh  is invoked interactively it normally prompts for each com-
       mand with ``% ''.  You can change the prompt by setting  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(1,8) tcl_prompt1.  The variable
       tcl_prompt2 is used in(1,8) a similar way when a newline is  typed  but  the
       current  command  isn't  yet complete; if(3,n) tcl_prompt2 isn't set(7,n,1 builtins) then no
       prompt is output for incomplete commands.


STANDARD CHANNELS
       See Tcl_StandardChannels for more explanations.


SEE ALSO
       fconfigure(n), tclvars(n)


KEYWORDS
       argument, interpreter, prompt, script file(1,n), shell



Tcl                                                                   tclsh(1)

References for this manual (incoming links)