标签:数组
数组
一. 引言
为什么需要数组呢?有时候需要存储或处理一系列数据,数组就可以充当这样的角色,它在内存中是相连的数据,并且在栈中的引用只有一个,如果不用数组,那数据就得一个一个定义一个一个声明,浪费内存空间,显然不合理.
二. 定义
变量:存储单个元素的内存空间
数组:存储多个元素的连续的内存空间,相当于多个变量的集合
数组名的索引
1. 索引:编号从0开始,属于数值索引
2. 注意:索引可支持使用自定义的格式,而不仅仅是数值格式,即为关联索引,bash4.0版本之后开始支持
3. Bash的数组支持稀疏格式(稀疏格式即为索引不连续
声明数组
1. declare –a 数组名
2. declare–A 数组名
3. 两者不可相互转换
三. 数组赋值
数组赋值有4种
1. 一次只赋值一个元素
2. 一次赋值全部元素
3. 只赋值特定元素
4. 交互式数组只对赋值
四. 引用数组
1. 输出数组:echo ${array_name[index]}
注意:省略【index】表示引用下标(赋的编号)为0的元素
以上述为例:echo ${array[0]}
echo ${array[1]}
2. 引用数组所有元素
${ARRAY_NAME[*]}
${ARRAY_NAME[@]}
以上述为例:echo ${array[*]}
echo ${array[@]}
3. 数组长度
4. 删除数组中的某些元素
5. 删除整个数组
Unset 数组名
五. 数组数据处理
1.引用数组中的元素:
数组切片:${ARRAY[@]:offset:number}
offset: 要跳过的元素个数
number: 要取出的元素个数
2.取偏移量之后的所有元素
${ARRAY[@]:offset}
3.向数组中追加元素:
ARRAY[${#ARRAY[*]}]=value
4.关联数组:
declare -A ARRAY_NAME
ARRAY_NAME=([idx_name1]=‘val1‘[idx_name2]=‘val2‘...)
注意:关联数组必须先声明再调用
六. 实例
生成5个随机数,保存于数组中,并找出最大值和最小值
第一种方法
代码如下:
输出结果
第二种方法
输出结果
2.编写脚本,定义一个数组,数组中的元素是/var/log 目录下所有以.log 结尾的文件;统计出其下标为偶数的文件中的行数之和
本文出自 “12457645” 博客,请务必保留此出处http://12467645.blog.51cto.com/12457645/1966023
标签:数组
原文地址:http://12467645.blog.51cto.com/12457645/1966023