(十一)数组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 ...
随机推荐
- 16常用API
常用API 今日内容介绍 u 正则表达式 u Date u DateFormat u Calendar 第1章 正则表达式 1.1 正则表达式的概念 正则表达式(英语:Regular Expressi ...
- Chromium多进程资源加载
webkit笔记,主要来自 朱永盛 <WebKit技术内幕> 学习笔记,转载就注明原著,该书是国内仅有的Webkit内核的书籍,学习的好导师,推荐有兴趣的朋友可以购买 多进程 资源的实际加 ...
- RxJS & Angular
RxJS & Angular https://www.learnrxjs.io/ https://rxjs-cn.github.io/learn-rxjs-operators/ https:/ ...
- Mac系统中常用快捷键
刚刚接触IOS系统,收集了一些快捷键和系统指令,以便能更好的学习IOS开发. 一.文件操作 复制:Command + C 粘贴:Command + V 回退:Command + ...
- JavaScript获取访问设备信息
<html xmlns=http://www.w3.org/1999/xhtml> <head> <title>JavaScript获取访问设备信息</tit ...
- 【题解】POI2014FAR-FarmCraft
这题首先手玩一下一下数据,写出每个节点修建软件所需要的时间和到达它的时间戳(第一次到达它的时间),不难发现实际上就是要最小化这两者之和.然后就想到:一棵子树内,时间戳必然是连续的一段区间,而如果将访问 ...
- BZOJ1143 [CTSC2008]祭祀river 【二分图匹配】
1143: [CTSC2008]祭祀river Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3236 Solved: 1651 [Submit] ...
- 遇到问题---java---myeclipse发布项目打包项目resource资源有缓存---log4j.properties新配置不起作用
在使用myeclipse过程中遇到一个很奇怪的问题,无论是在myeclipse中deploy发布到tomcat或者打包打成war后在tomcat中运行解压,resource都有缓存的感觉. 比较明显的 ...
- word公式编辑中的转义字符
Some of the commonly used symbols: \infty - Infinity \leq - Less then or equal \geq - ...
- [poj 2796]单调栈
题目链接:http://poj.org/problem?id=2796 单调栈可以O(n)得到以每个位置为最小值,向左右最多扩展到哪里. #include<cstdio> #include ...