$ var=foo; declare -n ref=var[0] $ readonly ref $ declare -p vardeclare -ar var
works even with readonly variables: $ readonly RO=foo $ declare -n ref=RO[0] $ readonly ref bash: RO: readonly variable $ declare -p ROdeclare -r RO presumably they should behave as if they were passed a subscripted variable $ readonly var[0] bash: readonly: `var[0]': not a valid identifier