我试图将数组切片用作关联数组参数,如下所示:
a=( a b c d )
typeset -A b
b=( "a b c" d )
echo $b[$a[1,-2]]
但这不起作用,也不这样做:
echo $b["a b c"]
有没有办法让它发挥作用?
答案 0 :(得分:1)
TL; DR ${b[a b c]}
和${b[$a[1,-2]]}
一样有效。
似乎有两个问题:
zsh
不对数组键执行引号删除。 ${b[a b c]}
有效,但${b["a b c"]}
没有。
简写$b[a b c]
似乎只适用于“简单”键。我不知道空格是否导致单词拆分,导致单独的单词${b[a
,b
和c]
,但添加大括号以“消除歧义”语法似乎是解决方案。