How do I show the definition of a function in zsh? type foo
doesn't give the definition.
In bash:
bash$ function foo() { echo hello; }
bash$ foo
hello
bash$ type foo
foo is a function
foo ()
{
echo hello
}
In zsh:
zsh$ function foo() { echo hello; }
zsh$ foo
hello
zsh$ type foo
foo is a shell function
The zsh idiom is whence
, the -f
flag prints function definitions:
zsh$ whence -f foo
foo () {
echo hello
}
zsh$
In zsh, type
is defined as equivalent to whence -v
, so you can continue to use type
, but you'll need to use the -f
argument:
zsh$ type -f foo
foo () {
echo hello
}
zsh$
And, finally, in zsh which
is defined as equivalent to whence -c
- print results in csh-like format, so which foo
will yield the same results.
man zshbuiltins
for all of this.