I'm not quite understand what exactly is "intentional". The problem is inconsistent behavior of unset '-f' flag for "normal" and "not-normal" function names (I'm not considering conflicting with variable names case). This is just confusing and makes the scripts error-prone, IMO.
On 20.01.2019 21:26, Eduardo A. Bustamante López wrote: > On Sun, Jan 20, 2019 at 06:26:43PM +0300, Andrey Butirsky wrote: >> Andreas, I know it will work with the '-f' flag. >> But for others function names, the '-f' unset flag is not required. >> Moreover, it seem confronts with Open Group Base Specification. >> So I consider it as a bug still. >> > It is intentional. If you want bash to run in POSIX mode, you should use the > `POSIXLY_CORRECT' variable or the `--posix' > flag. > > | dualbus@system76-pc:~$ POSIXLY_CORRECT=y bash -c 'function 1a() { :; }' > | bash: `1a': not a valid identifier > > And as Andreas mentioned, in general you should use `unset -f' if you want to > operate on functions. Otherwise you risk > conflict with a variable name.