I've been staring at Chet's message in http://www.mail-archive.com/bug-bash@gnu.org/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.