I've been staring at Chet's message in
http://www.mail-archive.com/[email protected]/msg01545.html
for a while, and now I understand why my own script (doing something
similar) was not originally working. What I can't quite figure is what
to change.
I'm source'ing a series of assignments of the form
DIRS_name1=(/foo /bar /baz)
DIRS_name2=(/qux /quux)
....
and earlier in the file, a list of the arbitrary 'name's are assigned.
Running through the list of 'name's and composing the corresponding array
variable name is no trouble, but I can't manage to indirect through to the
entire array. Like the person I linked to above, I keep ending up with only
the first member of the array:
v="DIRS_$name"
declare -a a=${!v}
# references through a are only scalar
I also tried reconstructing a copy of the array -- I don't care how slow or
inefficient that might be, it's going to be lost in the noise compared to
the real work of the script -- but didn't even get that much:
v="DIRS_$name"
declare -a a=( "[EMAIL PROTECTED]" )
# references through a are empty
The FAQ mentions that indirect expansion and arrays exist, but doesn't give
examples of combining them (granted it's not that FA of a Q). Staring at
the man page is how I got to where I am. :-) I've been looking at the
"advanced scripting guide" but their examples of indirection are all with
strings inside functions.
Any advice would be appreciated.