[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problem with how to assign an array
From: |
Greg Wooledge |
Subject: |
Re: Problem with how to assign an array |
Date: |
Fri, 25 Feb 2011 09:37:15 -0500 |
User-agent: |
Mutt/1.4.2.3i |
On Thu, Feb 24, 2011 at 06:59:02PM -0500, Steven W. Orr wrote:
> I intentionally used the star instead of the atsign because I'm taking
> advantage of the fact that these array elements all have no whitespace. So,
> after the assignment to a_all, the value of a[0] is equal to the single
> string represented by "${a1[*]}" (with quotes).
So you're trying to make an array of arrays? To fake a two-dimensional
matrix? Should've said so.
The only sane way to do this is to make an associative array whose
keys are a tuple of the indices you want. (Or, if the indices are
strictly numeric, and bounded, you can do it with regular sparse
non-associative arrays by making the keys i*100+j where 100 is some
constant chosen to be larger than the bound on j.)
And, of course, there's always "don't write it in bash". That's often
a sane answer.
AA example:
declare -A big
big[$i,$j]=foo
Numeric index example:
big[i*100+j]=foo
If you actually wanted an "array of lists" or something that's *not*
mimicking a matrix, then, well, good luck. (Did I mention that there
are other languages besides bash? Some of them actually HAVE such data
structures.)