ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



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  ini-tializes initializes
       tializes  an  interpreter.   You  can override the default unknown to change its functionality.  Note
       that there is no default implementation of unknown in 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 unknown.  If there is no such command, then the inter-preter interpreter
       preter returns an error.  If the unknown command exists, then it is invoked with arguments consisting
       of  the fully-substituted name and arguments for the original non-existent command.  The unknown com-mand command
       mand typically does things like searching through library directories for a  command  procedure  with
       the  name  cmdName, or expanding abbreviated command names to full-length, or automatically executing
       unknown commands as sub-processes.  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  pro-cedure procedure
       cedure  to load the command.  If this succeeds, then it executes the original command with its origi-nal original
       nal arguments.  If the auto-load fails then unknown calls auto_execok to see  if  there  is  an  exe-cutable executable
       cutable  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 toplevel
       level  and outside of any script.  If so, then unknown takes two additional 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 constructs.  Finally, unknown
       checks to see if cmd is a unique abbreviation 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), interp(n), library(n)


KEYWORDS
       error, non-existent command



Tcl                                                                                               unknown(n)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.