On Sun, Aug 31, 2014 at 12:20 PM, lolilolicon <loliloli...@gmail.com> wrote:
> Assignment to a subscripted array variable behaves differently for
> nameref vs `printf -v`, as shown below.
>
> Assignment via nameref variable:
>
> declare -a arr=()
> func() {
>   local -n ref=$1
>   ref='nameref'
> }
> func 'arr[0]'
> declare -p 'arr[0]' arr
>
> --- output ---
> declare -- arr[0]="nameref"
> declare -a arr='()'

The bug does not affect global nameref variables,

  declare -a arr
  declare -n ref
  ref='arr[0]'
  ref='foo'
  declare -p 'arr[0]' arr

  --- output ---
  gn.sh: line 5: declare: arr[0]: not found
  declare -a arr='([0]="foo")'

Reply via email to