2

我尝试在 bash 中创建一个关联数组,如下所示:

#! /bin/bash

declare -a arr
while read key
do
    arr+=([$key]=1)
done < /dev/stdin

for i in ${!arr[@]}
do
    echo "key:$i,value:${arr[$i]}"
done

我输入了“豹”和“龙团”作为键,输出在我的脑海中应该是这样的:

key:leopard,value:1
key:longtuan,value:1

但我只得到:

key:0,value:11

我该如何解决这个问题,感谢您的帮助。

4

2 回答 2

3

您正在创建一个常规数组而不是关联数组。改变这个:

declare -a arr

进入这个:

declare -A arr

问题就会消失。

于 2013-05-16T11:51:27.137 回答
2

关联数组用大写 A 声明:

declare -A arr

declare -a声明一个常规数组。

于 2013-05-16T11:51:21.027 回答