There is a post on stackoverflow:
http://stackoverflow.com/questions/43117707/bashs-strange-behavior-on-a-function-named/

The *problem*:

bash-4.4# shopt -s extglob
bash-4.4# function @() { echo foo; }
bash-4.4# @()
foo
bash-4.4# declare -f
@() ()
{
    echo foo
}
bash-4.4#
bash-4.4# unset -f '@()'
bash-4.4#
bash-4.4# shopt -s nullglob
bash-4.4# function @() { echo foo; }
bash-4.4# @()
bash-4.4# declare -f
@() ()
{
    echo foo
}
bash-4.4#

So when extglob is on, @() is handled as a glob pattern which makes sense.
But the behavior after shopt -s nullglob indicates that the glob pattern @()
is not *filename-expand*ed for function @(). This looks kind of
counter-intuitive to me.

Bug or feature?

-clark
​

Reply via email to