[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok
From: |
Dan Douglas |
Subject: |
Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok |
Date: |
Sun, 21 Jul 2013 21:35:54 -0500 |
User-agent: |
KMail/4.10.5 (Linux/3.10.1-pf+; KDE/4.10.5; x86_64; ; ) |
On Sunday, July 21, 2013 04:13:31 PM Chet Ramey wrote:
> On 7/14/13 5:03 PM, Linda Walsh wrote:
> > In order to declare an array of type int (or an integer array)
> > I first tried:
> >
> >> declare -ai -g foo=(1 2 xx 3)
> >> echo "${foo[@]}"
> > 1 2 xx 3 <---------incorrect
> >
> > So then tried:
> >
> >
> >> declare -ia -g foo=(1 2 xx 3) echo "${foo[@]}"
> >> 1 2 0 3 <---------correct!
> >
> > It seems 'declare' is sensitive to the order of its options in an
> > undesirable way -- i.e. for typed arrays, the -i should be
> > allowed either before or after the -a (or -A for hashes).
> >
> > That makes me wonder if the "-g" worked.
> > I.e. -- if "-g" after "-ia" works, and whether I need "-g -ia"
> > (or "-gia")
>
> Thanks for the report. This will be fixed in bash-4.3. You can work
> around it until bash-4.3 is released by splitting the attribute and
> value assignments:
>
> declare -ai -g foo
> foo=(1 2 xx 3)
>
> (For what it's worth, I don't see a difference in the output no matter what
> the option order.)
>
> Chet
What's the bug? I can't reproduce this and always get "xx" no mater the option
order.
I always assumed the -i attribute doesn't get set until after assigning the
values, which is why:
$ ( declare -ia foo=(1 2 xx 3); echo "${foo[@]}" )
1 2 xx 3
always gives you the xx, while forcing the evaluation to be done within
declare's environment gives a different result (e.g. with quotes):
$ ( declare -ia 'foo=(1 2 xx 3)'; echo "${foo[@]}" )
1 2 0 3
I think this was already known and not a bug, and doesn't have to do with the
order options are supplied in.
--
Dan Douglas
- Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok, Linda Walsh, 2013/07/14
- Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok, Chet Ramey, 2013/07/21
- Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok,
Dan Douglas <=
- Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok, Linda Walsh, 2013/07/21
- Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok, Dan Douglas, 2013/07/21
- Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok, Linda Walsh, 2013/07/22
- Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok, Dan Douglas, 2013/07/22
- Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok, Chet Ramey, 2013/07/22
- Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok, Linda Walsh, 2013/07/23
- Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok, Chet Ramey, 2013/07/27
- Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok, Linda Walsh, 2013/07/28
- Re: Minor bug declaring arrays of integers: dcl -ai=>broken, dcl -ia=>ok, Dan Douglas, 2013/07/28