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]}
没效果呀 展开
后来我试着给数组用字符串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]}
没效果呀 展开
2个回答
展开全部
如果是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
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
展开全部
可以利用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`"
#!/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`"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询