On 12/6/15 10:18 AM, konsolebox wrote: > On Sun, Dec 6, 2015 at 9:38 PM, shawn wilson <ag4ve...@gmail.com> wrote: >> declare -a array=(aaaaaaaa bbbbbbbb cccccccc); echo "${!array[@]}"; >> echo "${!array[@]:-}" >> >> also, "${!array[@]:foo}" and :+foo and :-foo are all empty as well - >> I'm pretty sure this is not intended? >> > ${!name[@]:-word}, ${!name[@]:+word}, and ${!name[@]:offset:length} > are not explicitly documented as valid forms of parameter expansion, > and never has been.
Yes. The only documented way to get that construct to produce the list of indices is to use it like ${!array[@]}. When you use it in a different expansion, you get standard variable indirection: expand ${array[@]} and try to use it as a variable name. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/