bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mapfile creates poorly-named array if passed nameref to array subscr


From: Grisha Levit
Subject: Re: mapfile creates poorly-named array if passed nameref to array subscript
Date: Wed, 1 Jun 2016 19:16:09 -0400

Actually it’s a bit more general than just mapfile:

$ declare -n ref=XXX[0]; declare -A ref; ref[foo]=bar
$ declare -p XXX[0]
declare -A XXX[0]=([foo]="bar" )
$ declare -n ref=XXX[0]; ref+=([2]=x)
$ declare -p XXX[0]
declare -a XXX[0]=([2]="x")
$ declare -n ref=XXX[0]; read -a ref <<< "A B C"
$ declare -p XXX[0]
declare -a XXX[0]=([0]="A" [1]="B" [2]="C")

OTOH coproc now handles this a bit better, in that it won’t create the array, though it will use one if one exists.

$ declare -n ref=XXX[0]; unset ref; coproc ref { :; }; declare -p ${!ref}
bash: `XXX[0]': not a valid identifier
bash: declare: XXX[0]: not found
$ declare -n ref=XXX[0]; unset ref; ref=(); coproc ref { :; }; declare -p ${!ref}
declare -a XXX[0]=([0]="61" [1]="56")

reply via email to

[Prev in Thread] Current Thread [Next in Thread]