Seth Woolley's Man Viewer

unknown(n) - unknown, unknown - Handle attempts to use non-existent commands - man n unknown

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

unknown(n)                   Tcl Built-In Commands                  unknown(n)



NAME
       unknown - Handle attempts to use non-existent commands

SYNOPSIS
       unknown cmdName ?arg arg ...?


DESCRIPTION
       This  command is invoked by the Tcl interpreter whenever a script tries
       to invoke a command that doesn't exist.  The default implementation  of
       unknown  is  a library procedure defined when Tcl initializes an inter-
       preter.  You can override the default unknown to change its functional-
       ity.  Note that there is no default implementation of unknown in(1,8) a safe
       interpreter.

       If the Tcl interpreter encounters a command name for which there is not
       a defined command, then Tcl checks for the existence of a command named(5,8)
       unknown.  If there is no such command, then the interpreter returns  an
       error.   If  the  unknown command exists, then it is invoked with argu-
       ments consisting of the fully-substituted name and  arguments  for  the
       original  non-existent  command.   The  unknown  command typically does
       things like searching through library directories for a command  proce-
       dure  with  the name cmdName, or expanding abbreviated command names to
       full-length, or automatically executing unknown  commands  as  sub-pro-
       cesses.   In  some cases (such as expanding abbreviations) unknown will
       change the original command slightly and  then  (re-)execute  it.   The
       result  of  the  unknown command is used as the result for the original
       non-existent command.

       The default implementation of unknown behaves  as  follows.   It  first
       calls  the  auto_load  library  procedure to load(7,n) the command.  If this
       succeeds, then it executes the original command with its original argu-
       ments.  If the auto-load fails then unknown calls auto_execok to see if(3,n)
       there is an executable file(1,n) by the name cmd.  If so, it invokes the Tcl
       exec(3,n,1 builtins)  command  with cmd and all the args as arguments.  If cmd can't be
       auto-executed, unknown checks to see if(3,n) the command was invoked at top-
       level  and  outside of any script.  If so, then unknown takes two addi-
       tional steps.  First, it sees if(3,n) cmd has one  of  the  following  three
       forms:  !!,  !event,  or  ^old^new?^?.  If so, then unknown carries out
       history(1,3,n,1 builtins) substitution in(1,8) the same way that  csh  would  for  these  con-
       structs.   Finally,  unknown checks to see if(3,n) cmd is a unique abbrevia-
       tion for an existing Tcl command.  If so, it expands the  command  name
       and  executes  the command with the original arguments.  If none of the
       above efforts has been able to execute the command,  unknown  generates
       an  error(8,n)  return.  If the global variable auto_noload is defined, then
       the auto-load step is skipped.  If the global variable  auto_noexec  is
       defined then the auto-exec step is skipped.  Under normal circumstances
       the return value from unknown is the return value from the command that
       was eventually executed.


SEE ALSO
       info(1,5,n)(n), proc(5,n)(n), interp(n), library(n)


KEYWORDS
       error(8,n), non-existent command



Tcl                                                                 unknown(n)

References for this manual (incoming links)