我用zsh
(有时bash
).问题是我有多个shell
脚本,我不知道如何编写一个小函数来打印功能代码的名称(突出显示;我使用pygmentize -g
).这是我想要得到的一个小例子:
$ getfunc "somefunc"
# from my_little_hacks.sh
somefunc () {
# function code
}
Run Code Online (Sandbox Code Playgroud)
它是一种干净而有效的方式,shell
无论awk
是否使用,nl
并且cat
在shell解释器的最佳时间内完成它?
函数不可能function
在它的主体中有一个单词,除非那里有嵌套的单词.它几乎不可能在引号内部{
或}
法律上不成对.
declare -f funcname
Run Code Online (Sandbox Code Playgroud)
...将funcname
在bash和zsh中检索函数的代码.从而:
getfunc() {
declare -f "$@" | pygmentize -l bash
}
Run Code Online (Sandbox Code Playgroud)