ABCDEFGHIJKLMNOPQRSTUVWXYZ

unknown

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 implementation of  unknown
       isn't part of the Tcl core;  instead, it is a library procedure defined
       by default when Tcl starts up.  You can override the default unknown to
       change its functionality.

       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
       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  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
       there is an executable file by the name cmd.  If so, it invokes the Tcl
       exec command with cmd and all the args as arguments.  If cmd  can't  be
       auto-executed, unknown checks to see if 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 cmd has one of the following three
       forms: !!, !event, or ^old^new?^?.  If so,  then  unknown  carries  out
       history  substitution  in  the  same  way that csh would for these con-
       structs.  Finally, unknown checks to see if 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 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(n), proc(n)


KEYWORDS
       error, non-existent command



Tcl                                                                 unknown(n)