关联数组键中的 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]]}
.
一样有效
似乎有两个问题:
zsh
不对数组键执行引号删除。 ${b[a b c]}
有效,但 ${b["a b c"]}
无效。
shorthand $b[a b c]
似乎只适用于 "simple" 键。不知道是不是空格导致分词,导致单词${b[a
、b
、c]
分开,但是在"disambiguate"后面加上大括号语法好像是解决方案。
我正在尝试像这样使用数组切片作为关联数组参数:
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]]}
.
似乎有两个问题:
zsh
不对数组键执行引号删除。${b[a b c]}
有效,但${b["a b c"]}
无效。shorthand
$b[a b c]
似乎只适用于 "simple" 键。不知道是不是空格导致分词,导致单词${b[a
、b
、c]
分开,但是在"disambiguate"后面加上大括号语法好像是解决方案。