(十一)数组array
变量:只能存一个值,数组可以存多个值
(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 info1
info1=([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/bash
while read line
do
hosts[i++]=$line
done </etc/hosts
#遍历数组
for i in ${!hosts[@]}
do
echo "$i:${hosts[$i]}"
done
- 例2:遍历数组,for循环
#!/bin/bash
old_IFS=$IFS
IFS=$'\n'
for line in $(cat /etc/hosts)
do
hosts[++i]=$line
done
for i in ${!hosts[@]}
do
echo "$i:${hosts[$i]}"
done
IFS=$old_IFS
- 例3:统计性别
#!/bin/bash
declare -A sex
while read line
do
type=$(echo $line|awk '{print $2}')
let sex[$type]++
done <sex.txt
for i in ${!sex[*]}
do
echo "$i:${sex[$i]}"
done
# cat sex.txt
jack01 m
jack02 f
jack03 m
jack04 f
- 例4:统计shell种类
#!/bin/bash
declare -A count
while read line
do
type=$(echo $line|awk -F ':' '{print $NF}')
let count[$type]++
done </etc/passwd
for i in ${!count[@]}
do
echo "$i: ${count[$i]}"
done
- 例5:统计tcp连接状态数量
#!/bin/bash
while true
do
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
clear
done
(十一)数组array的更多相关文章
- (66)Wangdao.com第十一天_JavaScript 数组Array
数组 Array 本质上,数组属于一种特殊的对象.typeof 运算符会返回数组的类型是 object 数组的特殊性体现在,它的键名是按次序排列的一组整数(0,1,2...) // Object.ke ...
- (C/C++学习笔记) 十一. 数组
十一. 数组 ● 基本概念 数组:数组是一组在内存中依次连续存放的(数组所有元素在内存中的地址是连续的).具有同一类型的数据变量所组成的集合体.其中的每个变量称为数组元素,它们属于同一种数据类型,数组 ...
- 我理解的数据结构(一)—— 数组(Array)
我理解的数据结构(一)-- 数组(Array) 首先,我是一个phper,但是毕竟php是一个脚本语言,如果使用脚本语言去理解数据结构具有一定的局限性.因为脚本语言是不需要编译的,如果你的语法写的不错 ...
- Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别
ArrayList和Vector的区别ArrayList与Vector主要从二方面来说. 一.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步 ...
- go 数组(array)、切片(slice)、map、结构体(struct)
一 数组(array) go语言中的数组是固定长度的.使用前必须指定数组长度. go语言中数组是值类型.如果将数组赋值给另一个数组或者方法中参数使用都是复制一份,方法中使用可以使用指针传递地址. 声明 ...
- javascript类型系统——数组array
× 目录 [1]创建 [2]本质 [3]稀疏[4]长度[5]遍历[6]类数组 前面的话 除了对象之外,数组Array类型可能是javascript中最常用的类型了.而且,javascript中的数组与 ...
- swift基本用法-数组array
数组简单用法 //------------------------------------------------------------------------------ // 1. 数组定义 / ...
- C#中数组Array、ArrayList、泛型List<T>的比较
在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序 ...
- Javascript基础系列之(四)数据类型 (数组 array)
字符串,数值,布尔值都属于离散值(scalar),如果某个变量是离散的,那么任何时候它只有一个值. 如果想使用变量存储一组值,就需要使用数组(array). 数组是由多个名称相同的树值构成的集合,集合 ...
- AS3 - 数组Array的几个常用方法(附样例)
AS3 - 数组Array的几个常用方法(附样例) 2015-03-30 10:39发布:hangge浏览:241 Flex/Flash开发中,经常会使用到数组,下面总结了一些数组的常用方法. 1 ...
随机推荐
- HTML5<canvas>标签:简单介绍(0)
<canvas> 标签是 HTML 5 中的新标签,像所有的dom对象一样它有自己本身的属性.方法和事件, 其中就有绘图的方法,js能够调用它来进行绘图 ,最近在研读<html5与c ...
- BZOJ4544 椭圆上的整点(数论)
https://www.cnblogs.com/Gloid/p/9538413.html 基本思路没有太大差别.得到2n=d(a2+3b2),其中d=gcd(n-x,n+x),n-x==a2& ...
- 洛谷 P3143 [USACO16OPEN]钻石收藏家Diamond Collector 解题报告
P3143 [USACO16OPEN]钻石收藏家Diamond Collector 题目描述 Bessie the cow, always a fan of shiny objects, has ta ...
- 怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL
有时候我们有迁移数据库的需求,例如从Oracle迁移到SQL Server,或者从MySQL迁移到Oracle. 很多江湖好汉一时不知如何手工操作,所幸的是Navicat提供了迁移的自动化操作界面. ...
- 安卓tablayout控件的使用
1.加载依赖 api "com.android.support:design:26.1.0" 2.布局 <android.support.design.widget.TabL ...
- c语言指针学习【转】
前言 近期俄罗斯的陨石.四月的血月.五月北京的飞雪以及天朝各种血腥和混乱,给人一种不详的预感.佛祖说的末法时期,五浊恶世 ,十恶之世,人再无心法约束,道德沦丧,和现在正好吻合.尤其是在天朝,空气,水, ...
- 【BZOJ2338】【HNOI2011】数矩形 [计算几何]
数矩形 Time Limit: 20 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description 最近某歌手在研究自己的全国巡回演出, ...
- 【BZOJ】[SDOI2009]HH的项链
[算法]主席树||离线+树状数组 [题解] 主席树经典应用:找区间不同的数字个数. 做法:记录每个数上一次出现的位置last[i],对last建权值线段树,对于区间询问last[i]<L的数字个 ...
- bzoj1008 矩乘递推
2013-11-17 10:38 原题传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1008 比较水的题,直接矩阵乘法+递推就OK了 w[i,0 ...
- jquery的ajax提交
ajax函数封装 function Ajax(imethod,iurl,iasync,idata,ifunc){ $.ajax({ type:imethod, cache: false, dataTy ...