On Wed, Nov 19, 2014 at 11:05:51PM +0100, Piotr Grzybowski wrote:
> On Wed, Nov 19, 2014 at 10:51 PM, Eduardo A. Bustamante López
> <[email protected]> wrote:
> > is_defined3() {
> > { declare -p -- "$1" && ! declare -fp -- "$1"; } 2>/dev/null >&2
> > }
>
> I dont know, but looks like a reusable code to me.
No, it fails if the argument is both a function AND a variable.
imadev:~$ is_defined3() { { declare -p -- "$1" && ! declare -fp -- "$1"; }
2>/dev/null >&2; }
imadev:~$ declare -p foo
bash: declare: foo: not found
imadev:~$ is_defined3 foo ; echo $?
1
So far, so good. But....
imadev:~$ foo() { echo foo; }
imadev:~$ foo=bar
imadev:~$ is_defined3 foo ; echo $?
1