Can bash show a function's definition?
Use type
. If foobar
is e.g. defined in your ~/.profile
:
$ type foobar
foobar is a function
foobar {
echo "I'm foobar"
}
This does find out what foobar
was, and if it was defined as a function it calls declare -f
as explained by pmohandras.
To print out just the body of the function (i.e. the code) use sed
:
type foobar | sed '1,3d;$d'
You can display the definition of a function in bash using declare. For example:
declare -f foobar
set | sed -n '/^foobar ()/,/^}/p'
This basically prints the lines from your set command starting with the function name foobar () and ending with }