bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Document what's allowed in function names


From: Chet Ramey
Subject: Re: Document what's allowed in function names
Date: Tue, 24 May 2011 17:23:20 -0400

> 2011-04-11, 09:51(-04), Chet Ramey:
> >> Machine Type: i686-pc-linux-gnu
> >> 
> >> Bash Version: 4.2
> >> Patch Level: 8
> >> Release Status: release
> >> 
> >> Description:
> >>    man bash is currently lacking information on what is allowed for 
> >> function
> >>    names. It implies name with name () compound-command [redirection] and
> >>    at the start of the manual there is:
> >> 
> >>    name   A word consisting only of alphanumeric characters and 
> >> underscores,
> >>    and beginning with an alphabetic character or an underscore.  Also 
> >> referred
> >>    to as an identifier.
> >> 
> >>    In reality the rules for function names are much more loose. For example
> >>    hyphen and forward slash are allowed. But there are still some 
> >> restrictions:
> >>    bash: `aa\'foo': not a valid identifier
> >
> > It was a mistake to allow such characters in function names (`unset' doesn't
> > work to unset them without forcing -f, for instance).  We're stuck with them
> > for backwards compatibility, but I don't have to encourage their use.
> [...]
> 
> Why would you put any restriction on the allowed name of a function?

(Wow, this message took a long time getting here.)

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.)

Chet

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]