[英]Shell : get function's body by it's name
我使用zsh
(有時是bash
)。 問題是我有多個shell
腳本,而且我不知道如何編寫一個小函數來通過其名稱來打印功能代碼(突出顯示;我使用pygmentize -g
)。 這是我想要得到的一個小例子:
$ getfunc "somefunc"
# from my_little_hacks.sh
somefunc () {
# function code
}
在shell解釋器可用的最佳時間里,是否在不使用nl
和cat
情況下在shell
或awk
執行此操作的一種干凈有效的方法?
function
的主體中不可能有單詞function
,除非那里有嵌套的function
。 在引號內法律上沒有配對的{
或}
也幾乎是不可能的。
declare -f funcname
...將同時在bash和zsh中檢索函數funcname
的代碼。 從而:
getfunc() {
declare -f "$@" | pygmentize -l bash
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.