I'll agree it's non-obvious, but this works for me on a BASH 2.x I have handy.
arwild01@BRONX:~$ echo $BASH_VERSION 2.05b.0(1)-release arwild01@BRONX:~$ function myfunc() { :; } arwild01@BRONX:~$ declare -f myfunc myfunc () { : } -Alan On Sat, Oct 18, 2014 at 9:35 AM, Tim Friske <m...@tifr.de> wrote: > Hi, > > when I define the following function: > > $ function foo { > > echo bar > > } > > and try to run it, I get: > > $ foo > bar > > but try to print its definition with "declare", I get: > > $ declare -p foo > bash: declare: foo: not found > $ declare -pf foo > bash: declare: foo: not found > $declare -pF foo > bash: declare: foo: not found > > but try to print its definition with "type", I get: > > $ type foo > foo is a function > foo () > { > echo bar > } > > I'm running the above commands in the following environment: > > * Fedora Linux 20 "Heisenbug" > * BASH_VERSION => 4.2.53(1)-release > * bash --version => GNU bash, version 4.2.53(1)-release > (x86_64-redhat-linux-gnu) > > Any clue why the declare built-in does not print a function's definition? > > BR > Tim > > -- a...@madllama.net http://humbleville.blogspot.com