博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(十一)数组array
阅读量:4697 次
发布时间:2019-06-09

本文共 1564 字,大约阅读时间需要 5 分钟。

变量:只能存一个值,数组可以存多个值

(1)普通数组,索引下标是整数:

1)定义:

方法一:一次赋一个值;语法:数组名[下标]=变量值

array[1]=linux
array[2]=shell
方法二:一次赋多个值;数组名=(变量值1 变量值2)
arrar1=(linux shell awk openstack [20]=docker)

2)引用:获取数组索引变量

语法:echo ${数组名[索引]}

echo ${books[3]}

(2)关联数组,索引下标是字符串:

1)定义关联数组:

语法:declare -A 数组名; 数组名=([索引]=变量值)

declare -A info1info1=([name]=jack [sex]=male [age]=28 [height]=170 [skill]=cloud)   #info1是数组名,[name]:是数组索引下标; jack是数组元素

(3)访问数组元素:

访问数组中的元素:echo ${数组名[索引]}; echo ${info1[name]}

访问数组中的所有元素:echo ${数组名[@]} 等同于echo ${数组名[*]}
统计数组的元素的个数:echo ${#数组名[@]}
获取数组的索引:echo ${!数组名[@]} #非常重要

(4)遍历数组:通过数组索引遍历元素;把要统计的对象作为数组的索引

  • 例1:遍历数组:while方式
#!/bin/bashwhile read linedo        hosts[i++]=$linedone 
  • 例2:遍历数组,for循环
#!/bin/bashold_IFS=$IFSIFS=$'\n'for line in $(cat /etc/hosts)do        hosts[++i]=$linedonefor i in ${!hosts[@]}do        echo "$i:${hosts[$i]}"doneIFS=$old_IFS
  • 例3:统计性别
#!/bin/bashdeclare -A sexwhile read line do        type=$(echo $line|awk '{print $2}')        let sex[$type]++done 
# cat sex.txt jack01 mjack02 fjack03 mjack04 f
  • 例4:统计shell种类
#!/bin/bashdeclare -A countwhile read line do        type=$(echo $line|awk -F ':' '{print $NF}')        let count[$type]++done 
  • 例5:统计tcp连接状态数量
#!/bin/bashwhile truedo        unset tcp_count        declare -A tcp_count        type=$(ss -an | grep :80 | awk '{print $2}')        for i in $type        do                let tcp_count[$i]++        done        for j in ${!tcp_count[@]}        do                echo "$j:${tcp_count[$j]}"        done        sleep 1        cleardone

转载于:https://www.cnblogs.com/lovelinux199075/p/8919309.html

你可能感兴趣的文章
leetcode 115. 不同的子序列(Distinct Subsequences)
查看>>
三元表达式
查看>>
Go初接触之libjpeg-turbo
查看>>
UVa 11300 Spreading the Wealth 分金币
查看>>
[leetcode] Happy Number
查看>>
Java第五周学习总结
查看>>
j.c.Warnsdorff马踏棋盘算法
查看>>
git私服
查看>>
the openning
查看>>
python 字符串 和 print
查看>>
MAC OS下安装Minizip
查看>>
Java_Certificates does not conform to algorithm constraints
查看>>
PAT 1027. Colors in Mars
查看>>
linux定时执行脚本
查看>>
Oauth支持的5类 grant_type 及说明
查看>>
ASP.NET 5 DNX SDK删除旧版本
查看>>
Android ListView 九大重要属性详细分析
查看>>
[LeetCode] 670. Maximum Swap 最大置换
查看>>
CC++中sizeof函数的用法
查看>>
SPFA 算法详解( 强大图解,不会都难!) (转)
查看>>