linux shell里 怎么存入数据对?就像 Map 或者 dictionary 一样,一个键对应一个值.

或者有别的办法能达到相同效果也行,我想要读一个文件,有一些关键字,对应一些数据,最后统计每个关键字对应的累加为多少后来我试着给数组用字符串key赋值,结果发现不管key是... 或者有别的办法能达到相同效果也行 , 我想要读一个文件,有一些关键字,对应一些数据,最后统计每个关键字对应的累加为多少
后来我试着给数组用字符串key赋值,结果发现不管key是什么都存在array[0]里
[root@localhost work]# declare -a arr
[root@localhost work]# arr[k]=3
[root@localhost work]# arr[o]=5
[root@localhost work]# echo ${arr[k]}
5
[root@localhost work]# echo ${arr[o]}
5
[root@localhost work]# echo ${arr[0]}
5
[root@localhost work]# echo ${arr[1]}

没效果呀
展开
 我来答
kwydwuf
2012-07-02 · TA获得超过7411个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:2013万
展开全部
如果是bash,可以用数组,比如下面的循环,对每一个关键字 (赵钱孙里)处理一次

declare -A data
for key in zhao qian sun li zhao sun; do
if [ -z "${data[$key]}" ]; then
data[$key]=1
else
let data[$key]++
fi
done

for key in ${!data[@]}; do
echo "$key occured ${data[$key]} times"
done
rm_2013
2012-07-02 · TA获得超过459个赞
知道小有建树答主
回答量:281
采纳率:100%
帮助的人:166万
展开全部
可以利用eval试试

#!/bin/bash
insert() {
eval "$1=\"$2\""
}
get_value() {
eval "echo \$$1"
}
insert a 10
echo "a = `get_value a`"
a_value=`get_value a`
a_value=`expr $a_value + 5`
insert a $a_value
echo "a = `get_value a`"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式