I guess it’s even more general than just list assignments. See also below
problems with declare:

$ declare -n ref=var[123]; unset ref; declare ref=; declare -p
${!ref}declare -- var[123]="123]"

$ declare -n ref=var[123]; unset ref; declare ref+=; declare -p
${!ref}declare -- var[123]="23]"

$ declare -n ref=var[123]; unset ref; declare +t ref; ref=X; declare
-p ${!ref}declare -- var[123]="X"

(The +t above can be replaced with any other flag)
​

Reply via email to