今天在书上看到了一个关联数组 let statarray["$ftype"]++  这样一个操作,用来做索引的自增统计,所以记下来

#!/bin/bash
#统计文件类型
#关于关联数组 用let ++ 值自增的验证 if [ $# -ne 1 ];
then
  echo "Usage is $0 basepath";
  exit
fi path=$1 declare -A statarray; #定义一个关联数组 for line in $(find $path -type f -print) #通过 find的-print 将输出给for循环
do
  ftype=`file -b "$line" | cut -d , -f1` #通过file命令获取文件类型,并赋值给ftype
  let statarray["$ftype"]++; #自增操作,此处有疑问,关联数组的赋值也是直接在本条语句中赋值的吗?
  echo "$ftype:${statarray["$ftype"]}"
done
echo ================= file types and counts =====================
for ftype in "${!statarray[@]}";
do
  echo $ftype : ${statarray["$ftype"]}
done

  输出结果:

wyf349@ubuntu:~/user/study_shell$ ./filestat.sh /home/wyf349/user/study_shell
ASCII text:1
UTF-8 Unicode text:1
UTF-8 Unicode text:2
ASCII text:2 #由输出结果可知,对应索引值为ASCII的值,在做自增操作。
empty :1
ASCII text:3
empty :2
ASCII text:4
Bourne-Again shell script:1
ASCII text:5
ASCII text:6
ASCII text:7
Bourne-Again shell script:2
ASCII text:8
Bourne-Again shell script:3
ASCII text:9
UTF-8 Unicode text:3
Bourne-Again shell script:4
Bourne-Again shell script:5
ASCII text:10
ASCII text:11
================= file types and counts =====================
empty : 2
Bourne-Again shell script : 5
ASCII text : 11
UTF-8 Unicode text : 3

  

shell练习--关于关联数组自增统计判断的学习的更多相关文章

  1. shell 之awk 关联数组高级应用

    最近由于数据迁移过,有些用户信息需要再次确认下,也许数据量比较大,但是需要最终确认的比如说是用户ID和其对应的用户积分数,这样就会导致出现文本a(老的数据),文本b(新的数据).比如 这是文本a.tx ...

  2. 【Linux】shell字符串分割、数组访问、条件判断

    参考资料: shell字符串分割再循环:http://www.shangxueba.com/jingyan/1633455.html linux shell中 if else以及大于.小于.等于逻辑表 ...

  3. Shell数组的增删改查

    Shell数组的增删改查 shell数组的定义及取值: a=(1 2 3) [root@bogon tmp]# echo ${a[*]}  1 2 3 [root@bogon tmp]# echo $ ...

  4. [ SHELL编程 ] 数组、关联数组和awk数组

    本文主要对shell编程中常用的数组.关联数组和awk数组定义.操作以及注意事项做个总结,并提供具体案例. 数组 数组定义:一对圆括号表示数组,数组元素之间用空格符号分割. Array=(val1 v ...

  5. SHELL脚本编程-普通数组(列表)和关联数组(字典)

    SHELL脚本编程-普通数组(列表)和关联数组(字典) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组相关概述 变量: 存储单个元素的内存空间 数组: 存储多个元素的连续的 ...

  6. 使用bash关联数组统计单词

    使用bash关联数组统计单词 从bash 4开始支持关联数组,使用前需要声明,即 declare -A map map[key1]=value1 map[key2]=value2 map=([key1 ...

  7. shell编程之数组和关联数组

    一.数组类似c语言的数组 1.两种赋值方式 可以整体定义数组:ARRAY_NAME=(value0 value1 value2 value3 ...) 此时数组的下标默认是从0开始的 还可以单独定义数 ...

  8. shell之数组和关联数组

    数组和关联数组 #!/bin/bash #定义数组1 array_var1=(1 2 3 4 5 6)# #定义数组2 array_var[0]="test1" array_var ...

  9. Linux shell —— 数组与关联数组

    使用 declare -A(declare 的用法请使用 help 进行查看,help declare) 进行声明关联数组变量: $ declare -A fruits_price $ fruits_ ...

随机推荐

  1. c++ 引用 日期&时间

    日期时间[点击进入看吧,没啥可后期拓展的] 引用 引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字.一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量. 一.引用和指针的 ...

  2. linux 设备树中 dwc3 节点的phys参数含义

    找了好久今天找到了,记录一下: &dwc3_0 { ... phys = <&lane3 PHY_TYPE_USB3 1 2 26000000>; ... } Requir ...

  3. 【Sass】常用知识点总结

    如何编译Sass Partials Variables colors font stacks 全局变量 Mixins 全局mixin 推荐的mixin插件 Bourbon Extend/Inherit ...

  4. 定时任务crontab命令

    linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另外, 由于用户自己也可以设置计划任务,所以,Li ...

  5. Spring MVC 跳转页面的方法

    转一个Spring MVC 跳转页面的方法,楼主总结的很全面,留着备用. https://blog.csdn.net/c_royi/article/details/78528758

  6. POJ 3585 Accumulation Degree 题解

    题面 一句话题意:找一个点使得,使得从这个点出发作为源点,发出的流量最大,输出这个最大的流量 这道题是换根法+二次扫描的模板: 首先若确定1为原点,那么可以写出dp方程:当v的度是1时, g[u]+= ...

  7. js知识点——2之navigator

    navigator(领航者) 1.appCodeName(返回浏览器的代码名) var x= navigator; document.write("CodeName:"+x.app ...

  8. 学习WCF之路,长期更新

    我学习WCF之路:创建一个简单的WCF程序   为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用.本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本 ...

  9. 12.AutoMapper 之Null替换(NullSubstitution)

    https://www.jianshu.com/p/3f86f237d1db Null 替换(Null Substitution) Null 替换允许当源类型成员在成员链任何位置为Null时给目标成员 ...

  10. redis数据库如何用Django框架缓存数据

    ---恢复内容开始--- 一.python 使用redis 1.1 安装 pip install redis 测试有一些基本的数据类型 import redis # redis 是一个缓存数据库 # ...