Shell : 通过函数名获取函数体

Shell : get function's body by it's name

我使用zsh(有时bash)。问题是我有多个 shell 脚本,我不知道如何编写一个小函数来按名称打印函数代码(突出显示;我使用 pygmentize -g)。这是我想要得到的一个小例子:


$ getfunc "somefunc"

# from    my_little_hacks.sh
somefunc () {
    # function code
}

shellawk 中不使用 nlcat 在 [=31= 可用的最佳时间使用 nlcat 是一种干净有效的方法吗? ] 口译员?

函数主体中不可能有单词 function,除非那里有嵌套的单词。它也几乎不可能在引号内有合法不成对的 {}

declare -f funcname

...将在 bash 和 zsh 中检索函数 funcname 的代码。因此:

getfunc() {
  declare -f "$@" | pygmentize -l bash
}