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

Reply via email to