> 2011-05-24 17:23:20 -0400, Chet Ramey:
> [...]
> > > Why would you put any restriction on the allowed name of a function?
> [...]
> > Because Posix does, and because unset without -f has to enforce the variable
> > name restrictions.  (Though the language has been relaxed in the latest
> > standard.)
> [...]
> 
> POSIX puts restrictions on the name of functions used by
> applications, but I can't see anywhere it restricting what the
> shell allows.

The `application shall ensure ...' language was added long after the first
version of the standard was released.  The original version from 1992
required that a function name be a `name' as the grammar defined it.
I don't know whether that was changed in the 2001 version of the standard,
but it was different by 2004, at least.

> Note that all of pdksh, mksh, zsh (at least) allow
> foo+bar() { w; } for instance
> ksh93 allows foo.get() { w; }

Bash allows all of these forms, as well as things like `!!', by default.
It continues to enforce the original Posix restrictions in Posix mode.

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/

Reply via email to