脚本递归调用
里面的数据等于一个个元素,访问这些元素,就需要给它们加编号,下标
数组:多个相同类型的变量的集合
索引可以用自己定义的格式,(字母,很长的字符串,可以根据自己的情况定制),但是可以根据这个特性进行巧妙的处理,下标是可以任意字符串uuid也可以
特殊的索引叫关联索引,而存放这种下标的数组叫关联数组(bash4.0后支持)
查看bash版本
稀疏格式;(以前索引是01234连续的),故意把其中某个元素删除,就叫索引不连续,稀疏格式
-a表示普通数组(可以不声明,直接使用,一般建议就申明比较好)
-A表示关联数组(必须先申明后使用)
两者不可相互转换
第一种一次只赋值一个元素
直接赋值,相当于把数组创建出来,没声明(直接赋值,创建数组,建议先声明)
cto技术总监
cfo财务总
第二种一次赋值全部元素
引用数组需要¥{数组名[]}
显示所有数组*或@都可以,如果不写[],默认就是显示0,不加{}也默认就是数组0
但是$title[2]就认为前面¥title是数组0=ceo后面[2]是字符串
可以生成列表,批量赋值
放命令是否可以,只要能生成列表,什么方法都可以
说面的方法,也可以简化
只赋值特定元素容易造成,稀疏格式
read-a 对数组复制交互式
用管道传就不行
关联数组就是说数组下标可以根据自己定义的
如果不声明,就直接赋值会造成问题,如下图:
unset删除数组
必须要先声明declare -A
关联数组先声明后赋值
关联数组既然可以自定义下标就可以成对的显示
利用这种思路就可以写这个ip地址,对应显示连接次数
数组的个数如何显示
*如果元素有N个,那么最后一个下标就是n-1,如果要加一个新元素,那就是N
相当于个数,加一个元素就是等于这个数
删除单个数组就是跟下标,删除整个数组就是跟数组名
有两个变量一个存最大值,一个最小值
把分区的利用率进行一下处理(如果数组在循环里使用,那就是在循环结束后失效)
、
可以用另外一种方法:
之前是用管道传的,开启子shell,所以变量到while循环外面就没有值了,如果读取文件里的就不开启子shell,到外面就有值
1.先声明数组 declare -a files
2.files=(/var/log/*.log)所有数组赋值(一次性赋值)
3.声明变量存总行数 delcare -i lines=0(-i整数)
4.元素的个数相当于执行的次数
5.统计的时候只统计偶数的
冒泡排序法,第一轮比出最小值
冒泡排序效率比较低下
转置矩阵
左边的数字用主组存起来
由两个元素组合而成
num[00]左边的0是行,右边的是列
如果想要元素对调
以159为中轴
24对调,37对调,86对调
如何对标,可以中间设置个变量