数组:数字组成的组,组里即可以是int类型,string字符串,数组当中的数据类型可以由用户自定义。
同一种,也可以是不同的数据类型组成的元素集合。
数组的最大作用:可以一次性定义多个变量
如何定义数组,在shell中创建数组的方法
ky30=(lsy wyt wx dxl)
ky30:定义数组的名称
(): 定义数组的元素,多个元素用空格隔开
echo ${ky30[*]} :打印当前数组中包含的所有
ky301=([0]=1 [1]=2 [2]=3)
[0] [1] [2]
表示数组的下标索引
数组中当中的,元素位置的起始下标索引都是0
怎么查看数组的长度,也就是查看数组当中有多少个元素
echo ${#ky30[*]} :获取数组大的长度
获取数组下标的元素值:
echo ${ky30[0]}:索引下标从零开始
数组的切片:
下标的步长是从当前的索引下标的位置,包含自己的位置,往后走几位,这里指的是索引位置,不是对应的元素位置
数组替换:
替换数组当中的元素
echo ${lsy[*]/4/66} :临时替换,原数组的值不会变
永久替换:lsy={$lsy[*]/4/66} (需要重新赋值)
删除数组:
unset + 数组
删除数组中指定的元素:
unset lsy[3]
追加数组中的元素:
1,lsy[5]=sex (索引位置为空,则为追加;如果索引位置有值,则是替换,永久替换)
如果要追加元素,一般都是按照索引下标大的顺序来进行添加。
2,lsy[${#lsy[*]}]=bighouse
3,lsy+=(8 9) 好用,也是在后面追加
数组的应用:
1,数组与函数之间的运用
数组作为参数传给函数。
ky30 () {
abc=($(echo $@))
echo "新数组的值为:${abc[*]}"
}
abc1=(seq 1 10
)
ky30
函数调用数组传参
seq:自动生成数字排序
seq 1 10 1-10
seq 1 2 10 :步长,跨度1 3 5
也可以倒序
seq 10 -2 1 倒序步长加个减号
冒泡排序:
在数组当中从小到大,或者从大到小进行排序
就是把一个大小顺序混乱的一个数组,按照从小到大或者从大到小进行排序
冒泡排序的思路:
1,冒泡排序需要双循环,外循环要确定次数,内循环比较大小,换位置,实现和循环次数的轮次而减少
df -h || awk 'NR>1'{print $5}'
df -h | awk 'NR>1 {print $5}' | tr -d "%"