陷入困境,在bash中动态分配关联数组

时间:2013-05-16 11:35:12

标签: bash

我尝试在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

我如何解决这个问题,谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

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

declare -a arr

进入这个:

declare -A arr

问题就会消失。

答案 1 :(得分:2)

关联数组用大写A:

声明
declare -A arr

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