Provided by: manpages-zh_1.6.3.3-2_all bug

NAME

       unknown - 处理对使用不存在命令的尝试

总览 SYNOPSIS

       unknown cmdName ?arg arg ...?
_________________________________________________________________

描述 DESCRIPTION

       在一个脚本尝试调用一个不存在的命令的时候,Tcl   解释器将调用这个命令。unknown  的实现不是 Tcl  核心的一部
       分;但是在 Tcl    启动的时候,它是一个被缺省定义的库过程。你可以覆盖这个缺省的  unknown      来改变它的功
       能。

       如果  Tcl    解释器遇到一个命令名而没有为它一个定义了的命令,则  Tcl     检查是否存在一个叫  unknown 的命
       令。如果没有这个命令,则解释器返回一个错误。如果unknown      命令存在,则调用它并加上由被完全替换过的名字
       组成的参数和给最初的不存在的命令的参数。典型的,unknown    命令做在库目录中查找名字是    cmdName 的一个命
       令过程,把缩写的命令名扩展成全长的名字,或自动的作为子进程执行未知命令等事情。在这些情况下(比如扩展缩写)
       unknown    将轻微的改变最初的命令,接着(重)执行它。unknown    命令的结果被用做最初的不存在的命令的结果。

       unknown     的缺省实现的行为如下。它首先调用  auto_load  库过程来装载命令,接着它用最初的参数执行最初的命
       令。如果自动装载失败则 unknown  调用 auto_execok      来看是否有一个叫  cmd  的可执行文件。如果有,它调用
       Tcl exec    命令并加上 cmd  和所有 args  作为参数。如果 cmd  不可自动执行,unknown     检查是否在顶层调用
       这个命令并在任何脚本的外部。如果是这样,则 unknown   进行两个额外的步骤。首先它参看 cmd    是否是下列三种
       形式之一:      !!,   !event,   或   ^old^new?^?。如果是这样,则  unknown   用与  csh   相同的方式对这些构
       造(construct)进行历史替换。最后,unknown   检查 cmd  是否是一个现存的 Tcl  命令的缩写。如果是,它扩展命令
       名并用最初的参数执行这个命令。如果上述努力都不能执行这个命令,unknown    返回一个错误。如果定义了全局变量
       auto_noload    ,则跳过自动装载步骤。如果定义了全局变量     auto_noexec,则跳过自动执行步骤。在通常的条件
       下,unknown    的返回值就是最终执行的命令的返回值。

参见 SEE ALSO

       info(n), proc(n)

关键字 KEYWORDS

       error, non-existent command

[中文版维护人]

       寒蝉退士

[中文版最新更新]

       2001/09/01

《中国 Linux 论坛 man 手册页翻译计划》:

       http://cmpp.linuxforum.net

       本页面中文版由中文 man 手册页计划提供。
       中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh