bash能显示一个函数的定义吗?

有没有办法在bash中查看bash函数的定义?

例如,说我定义了foobar函数

 function foobar { echo "I'm foobar" } 

有没有什么办法来获得foobar运行的代码?

 $ # non-working pseudocode $ echo $foobar echo "I'm foobar" 

使用type 。 如果foobar是例如在你的~/.profile定义的:

 $ type foobar foobar is a function foobar { echo "I'm foobar" } 

这确实找出foobar是什么,如果它被定义为一个函数,它会调用declare -f如pmohandras所解释的。

你可以使用declare在bash中显示一个函数的定义。 例如:

 declare -f foobar 
 set | grep -A999 '^foobar ()' | grep -m1 -B999 '^}' 

foob​​ar是函数的名字。

 set | sed -n '/^foobar ()/,/^}/p' 

这基本上打印从您的设置命令开始的函数名称foobar()和结束于}