关联数组键中的Zsh空格

时间:2015-10-29 15:06:47

标签: arrays whitespace zsh associative-array

我试图将数组切片用作关联数组参数,如下所示:

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

但这不起作用,也不这样做:

echo $b["a b c"]

有没有办法让它发挥作用?

1 个答案:

答案 0 :(得分:1)

TL; DR ${b[a b c]}${b[$a[1,-2]]}一样有效。

似乎有两个问题:

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

  2. 简写$b[a b c]似乎只适用于“简单”键。我不知道空格是否导致单词拆分,导致单独的单词${b[abc],但添加大括号以“消除歧义”语法似乎是解决方案。