我使用zsh
(有时bash
)。问题是我有多个shell
脚本,我不知道如何编写一个小函数来打印功能代码的名称(突出显示;我使用pygmentize -g
)。这是我想要得到的一个小例子:
$ getfunc "somefunc"
# from my_little_hacks.sh
somefunc () {
# function code
}
在shell
或awk
中,在没有使用nl
和cat
的情况下,在shell解释器的最佳时间内,这是一种干净而有效的方法吗?
函数不可能在它的正文中有一个单词function
,除非那里有嵌套的单词。它也几乎不可能在引号内部{
或}
合法不成对。
答案 0 :(得分:5)
declare -f funcname
...将在bash和zsh中检索函数funcname
的代码。因此:
getfunc() {
declare -f "$@" | pygmentize -l bash
}