关联数组键中的 Zsh 空格

Zsh spaces in associative array key

我正在尝试像这样使用数组切片作为关联数组参数:

a=( a b c d )
typeset -A b
b=( "a b c" d )
echo $b[$a[1,-2]]

但这行不通,这样做也行不通:

echo $b["a b c"]

有什么办法让它起作用吗?

TL;DR ${b[a b c]}${b[$a[1,-2]]}.

一样有效

似乎有两个问题:

  1. zsh 不对数组键执行引号删除。 ${b[a b c]} 有效,但 ${b["a b c"]} 无效。

  2. shorthand $b[a b c] 似乎只适用于 "simple" 键。不知道是不是空格导致分词,导致单词${b[abc]分开,但是在"disambiguate"后面加上大括号语法好像是解决方案。