重击地图没有给出正确的结果

时间:2019-07-12 09:16:36

标签: bash dictionary

我正在bash中使用地图,如下所示:

declare -a hash
hash=(["a"]="A" ["b"]="B" ["c"]="C" ["d"]="D")

echo ${hash["a"]}

https://ideone.com/YfnazQ

但是它正在打印D而不是A。此代码段有什么问题?

2 个答案:

答案 0 :(得分:1)

您的问题就是如何定义变量哈希。

declare -a hash用于索引数组,我的意思是索引只是数字的数组。

要声明一个关联数组,只需将-a更改为-A:

declare -A hash

这样,您可以将字母写为索引,并且该回显将按预期工作。

希望我能帮上忙!

答案 1 :(得分:0)

您输入有误或错字,而是指定了键-a而不是-A

所以,相反:

declare -a hash

使用:

declare -A hash