在 tclsh 中,可执行命令可以来自 tcl 本身(puts set)、c 代码(MyProcA MyProcB)或来自 linux 环境(echo vim)。假设我有已经通过历史执行过的命令,我应该如何区分这些命令的来源?
直接运行
echo
是命令unknown
的一个特点。通常,您需要这样做exec echo
...
除此之外,Tcl 实现提供的命令、第三方扩展定义的命令以及(在较小程度上)通过调用类似
proc
之类的命令定义的命令之间并没有太大区别。它们都只是命令。其中一些命令支持额外的自省,例如 via info body
或 info object
,但这并不意味着它们比通过编译为 Tcl 字节码或作为一段 C 代码来处理的命令更少。