On 05/05/2011 09:47 AM, Oleg Verych wrote: > 2011/5/5 Eric Blake <[email protected]>: >> [originally brought up on the bash list as a NetBSD bug, but dash is >> also affected] > > So what? I was happy (years back) to have ability to create adressable > arrays using $####... or ${####} if it matters.
You can always create an addressable array with ${####} - the bug in
question is only about dash's treatment of $####. POSIX already
requires that the user use braces for multi-digit positional parameters.
>
>> Therefore, in "$10", 10 is not a name, so the longest name is the empty
>> string, and the single-character symbol is used instead, such that this
>> MUST be parsed as ${1}0, not as ${10}.
>
> IMHO this would be step back.
No, making $10 different from ${10} would be making things
POSIX-compliant. And I can envision using things like:
set a
eval echo \$$10
as a way to specifically echo the contents of $a0, but where that usage
only works if all shells follow the same rules. But given the current
difference in behavior, I guess:
eval echo \$${1}0
is the best I can expect.
--
Eric Blake [email protected] +1-801-349-2682
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
