I was testing the precedence between functions and aliases so I tried like this (with bash 4.1.5):
$ cat rc alias foo='echo this is the alias' foo() { builtin echo 'this is the function' } foo $ source rc bash: confusing-aliases-2.sh: line 4: syntax error near unexpected token `(' bash: confusing-aliases-2.sh: line 4: `foo()' $ Seems like I must explicitly use the `function' keyword to define foo() for this scenario. Is that the correct behavior?