#!/bin/bash
#必须先声明
declare -A dic
dic=([2001]="ability-sms" [6001]="biz-app" [6002]="biz-user")
#动态赋值
dic['key']=value
#打印指定key的value
echo ${dic["key1"]}
#打印所有key值
echo ${!dic[*]}
#打印所有value
echo ${dic[*]}
#遍历key值
for key in $(echo ${!dic[*]})
do
echo "$key : ${dic[$key]}"
done
统计案例
#! /bin/sh
#输入格式为一行一个单词
#定义字典类型变量
declare -A dict
#从标准输入读取
while read word
do
#若key为word的变量不存在,则为未定义,即第一次遇到此word,则将此word加入字典并设置其value为1。,否则自增value值
if [ ! -n dict[${word}] ];then
dict[${word}]=1
else
((dict[${word}]++))
fi
done
#打印统计结果
echo -e "word\t\tcount"
for key in $(echo ${!dict[*]})
do
echo -e "$key\t\t${dict[$key]}"
done
运行结果
[hadoop@master workspace]$ cat test.txt
123
123
123
1
1
1
2
123
1
2
[hadoop@master workspace]$ cat test.txt | sh sh.sh
word count
123 4
1 4
2 2