On Thu, May 15, 2025 at 02:26:47AM +0200, Emanuele Torre wrote:
> $ # a[0] is not set, but no error
> $ bash -uc 'a=() k=; declare -n r=a[k]; : "$r"; echo ok'
> ok
> $ # a[0] is not set, error
> $ bash -uc 'a=() k=; declare -n r=a[k]; : "${r}"; echo ok'
> bash: line 1: r: unbound variable
You don't need the k variable nor a to be set:
$ bash -uc 'unset -v a; declare -n r=a[0]; : "${r}"; echo ok'
bash: line 1: r: unbound variable
$ bash -uc 'unset -v a; declare -n r=a[0]; : "$r"; echo ok'
ok
o/
emanuele6