您的位置:首页 > 运维架构 > Shell

shell脚本基础--数组

2017-05-05 21:51 513 查看
q1.数组
我们知道,变量就是内存里的存储空间,每个变量只可以存储一个数据,进行一次性的赋值操作,那么遇到一些需要连续存储并读取的任务时,如果还是依靠变量进行多次存储,既不会保证内存空间的连续性,也大大降低了CPU的效率,这时就需要数组这一类型的变量出马了!
数组变量:
数组简单来说就是存放一个或多个元素的连续的内存空间,相当于多个变量的集合;
数组的索引有以下方式:

1.数字索引。称为索引数组 Index ARRAY;
0,1,2,3....
2.名称(字符串): 称为关联数组 Related ARRAY;
bash4.0以上的版本才支持
数组分为两种:稠密数组和稀疏数组
稠密数组:索引编号必须连续,类似于连续函数依次排序,没有断点;
稀疏数组:索引编号可以不连续,bash数组就属于稀疏数组;
声明数组的方法:
1.之前说到的declare命令,可以声明变量。
-i NAME 声明整型变量
-x NAME 声明环境变量
同样,用它也可以声明数组变量

-a:声明索引数组(if supported)
-A:声明关联数组(if supported)
2.直接声明数组
直接为数组赋值:
ARRAY_NAME=("value1" "value2" ...) 稠密数组
ARRAY_NAME=([0]="value1" [5]="value2" ...) 稀疏数组
3.定义数组的元素而创建数组
ARRAY_NAME[0]=value1
ARRAY_NAME[1]=value2
...
以下介绍对数组的操作:
1.引用数组的元素:

引用数组元素的方式:${ARRAY_NAME[INDEX]}
注意:如果不给出索引编号index,则表示引用数组的第一个元素
引用整个数组所有元素:${ARRAY_NAME[*/@]}
引用数组的索引:${!ARRAY_NAME[*/@]}
2.查看数组的长度:数组中有效元素的个数:

${#ARRAY_NAME[*/@]}
3.数组切片:

${ARRAY_NAME:offset}显示包括offset数字所表示的索引位置及以后的所有元素
4.追加元素:
1).稠密数组:
ARRAY_NAME[${#ARRAY_NAME[*]}]=valuex
2).稀疏数组
ARRAY_NAME[INDEX]=valuex 这里的index必须为未被使用的数组元素索引编号;
5.撤销数组
unset ARRAY_NAME
6.删除数组的元素

unset ARRAY_NAME[INDEX]
关于数组简单的记到这里,数组方便我们对大量数据的存储,读取等操作,用处是大大的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数组 编程 shell