Shell:通过它的名字获取函数的主体

时间:2015-07-08 23:49:25

标签: bash shell zsh

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

$ getfunc "somefunc"

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

shellawk中,在没有使用nlcat的情况下,在shell解释器的最佳时间内,这是一种干净而有效的方法吗?

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

1 个答案:

答案 0 :(得分:5)

declare -f funcname

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

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