【发布时间】:2011-02-05 16:50:17
【问题描述】:
我们的 ksh 环境定义了几个函数。这些函数的名称可以使用typeset -f ksh 命令(或functions 别名)列出。是否可以看到这些函数的定义(即源代码)?
这似乎是一个显而易见的问题,但我已经尝试了typeset -f 的各种参数,但没有成功。
作为一个例子(在 Linux 上):
$ foo()
> {
> echo foo
> }
$ foo
foo
$ typeset -f foo
foo
$
对于环境中默认定义的一些(但不是全部)其他函数,typeset -f确实显示源代码。
更新 1:Linux 内核 2.4.21-32 会发生这种情况
更新 2:更新 2:Ctrl-V 给出“版本 M 1993-12-28 n+” - 看起来这是一个相当旧的版本,所以可能没有下面 Gilles 提到的修复
谢谢, 史蒂夫
【问题讨论】:
-
functions将列出来源,至少我在我的 ksh 版本上尝试过 -
似乎在 Linux 上,“functions”命令显示了一些函数的来源,但不是全部。在 Solaris 上,它只显示函数名称列表。
-
还有ksh的版本?也可以包括发行版及其版本。