2009-10-28 09:00:59 -0400, Chet Ramey:
> > zle-line-init() zle overwrite-mode
> > zle -N zle-line-init
> > 
> > To get back on topic, bash is the only Bourne-like shell that I
> > know that doesn't allow that function definition syntax above,
> > I've always wondered why.
> 
> The Posix grammar has never allowed it (a `function_body' must be a
> compound command, and that's what bash implements), and there has
> never been sufficient demand to add it as an extension. 
[...]

It's never allowed it to POSIX _scripts_, but it won't make a
shell non-conformant to support it (and ksh, pdksh, ash, zsh
even posh all do support it), just like most POSIX conformant
shells support arrays for instance even though that's not a
POSIX feature.

bash not supporting it helps for writing POSIX compliant scripts
(as it will return an error if one tries to use that
non-standard feature), but as bash is the only POSIX shell that
doesn't support it, it feels a bit silly.

I wonder what's the rationale for POSIX not supporting it (is it
because of bash?).

-- 
Stephane


Reply via email to