Hi list, I've found what I belive to be a bug in how `test -v` expands the key in an associative array. The following minimal test case demonstrates the problem:
declare -A array mytest () { array["$1"]=123 test -v array["$1"] printf 'test -v array[%s]; $?=%s\n' "$1" "$?" } mytest 'a' # prints: test -v array[a]; $?=0 mytest '"' # prints: test -v array["]; $?=1 echo "keys: ${!array[*]}" # prints: keys: " a With a regular alphanumeric key `test -v` will return zero, indicating the array element exists. However if we specify a variable that expands to something containing the double quote character the test doesn't succeeed indicating the key doesn't exist though it does as we can observe by the expansion of ${!array[*]}. Do you think this intended behaviour or a real bug? Tested on Debian buster, with bash_5.0-4 ($BASH_VERSION="5.0.3(1)-release") and git master commit 76404c85d492c001f59f2644074333ffb7608532. Thanks, Daniel PS: Please keep me in CC as I'm not subscribed.