bug-bash
[Top][All Lists]
Advanced

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

Re: eval


From: Chet Ramey
Subject: Re: eval
Date: Thu, 05 May 2011 10:49:59 -0400
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10

On 5/5/11 10:45 AM, Eric Blake wrote:
> On 05/05/2011 08:43 AM, Chet Ramey wrote:
>>> "The parameter name or symbol can be enclosed in braces, which are
>>> optional except for positional parameters with more than one digit or
>>> when parameter is followed by a character that could be interpreted as
>>> part of the name."
>>
>> I agree with this interpretation, but the following sentence can be
>> interpreted as placing the burden on the shell programmer:
>>
>> "When a positional parameter with more than one digit is specified, the
>> application shall enclose the digits in braces (see Parameter Expansion)."
>>
>> Still, sh has required the braces since time immemorial.  It makes no
>> sense that ash would have done it differently
> 
> Additionally from POSIX:
> 
> "If the parameter name or symbol is not enclosed in braces, the
> expansion shall use the longest valid name (see XBD Name)"
> 
> Then XBD Name:
> "In the shell command language, a word consisting solely of underscores,
> digits, and alphabetics from the portable character set. The first
> character of a name is not a digit."
> 
> In "$10", 10 is not a name, so the longest name after $ is the empty
> string, and in place of a name, we use the single-character symbol 1
> instead, such that this MUST be parsed as ${1}0, not as ${10}.

Turn and face the congregation, Reverend. :-) I'm not the one you have to
convince.

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]