数组:数字组成的组,组里即可以Int类型,string字符串
数组当中的数据类型可以由用户自定义
同一种,也可以是不同的数据类型组成的元素集合
数组最大的作用:可以一次性定义多个变量
shell中数组的创建、修改、和应用
格式:
1.数组名=(数组的元素,多个数组用空格隔开)
打印:echo ${数组名[*或@]}
2.数组名=([0]=元素 [1]=元素 [2]=元素)
[0] [1] [2]:数组下标索引,数组当中元素位置的起始下标索引都是0
打印数组中对应下标的元素:echo ${数组名[0]}
打印数组中有几个元素或者获取数组长度:echo ${#数组名[*或@]}
数组的增删改查:
数组的遍历:
创建多个用户并为他们设置密码:
数组的切片:
echo ${hqy[*]:2:3}
2:表示当前数组中索引下标为2的元素
3:表示从当前元素开始,往后走几位,包含自己的位置
数组替换:替换数组当中的元素
临时替换:
echo ${hqy[*]/4/66}
4:原来的元素
66:替换成的元素
永久替换:重新赋值的方法
hqy=(${hqy[*]/4/66})
删除数组以及删除数组当中的指定元素:
直接删除整个数组:
unset hqy
删除数组当中的指定元素:通过索引下标的方法
unset hqy[2]
为数组添加元素:
第一种:通过索引下标,索引位置为空就是追加,索引位置有值就是替换
注意:追加元素,一般都是按照索引下标的顺序来进行添加
hqy[5]=6
第二种:在元素最后的位置直接添加一个元素
hqy[${#hqy[*]}]=7
第三种:在元素最后的位置直接添加一个元素,可以添加多个元素
hqy+=(8 9)
数组的应用:
seq命令:自动生成数字排序
seq 1 10:1-10
利用函数生成一个数组:
利用外部数组给函数传参实现1-10的累加
函数中套用数组,将数组中的所有元素乘2后生成一个新的数组:
冒泡排序:面试题
类似于气泡上涌,在数组中从小到大,或者从大到小来进行排序,就是把一个顺序混乱的数组,按照从小到大或者从大到小的顺序进行排序。
abc=(20 10 60 40 50 30)------>abc=(10 20 30 40 50 60)
从小到大排序:
排序的思路:
1.两个相邻的数比较
2.大的往右走,小的往左走
代码思路:
冒泡排序需要双循环
外循环需要确定次数
内循环比较大小,换位置
例题:打印磁盘已用百分比,并按照从大到小排序