函数
函数是什么?
- 把整个命令块按照格式写在一起
- 可以方便重复地使用这个命令块
函数的意义
- 避免代码重复
- 将一个大工程分割为若干个小的功能模块,可以随时调用,代码可读性更强
函数的表达式
- function 函数名 {命令块}
- 函数名 () {命令块}
函数的返回值
- 使用return的条件:
- 函数一结束就取回返回值,$?变量获取返回值,只会返回最后一条命令的状态码
- 返回值(退出码)的范围必须在0-255之间,超过将%256取余
函数变量的作用范围
- 全局变量:只有全局变量才能被外部使用
- 临时变量:只能在函数内部使用,函数外部无法应用内部的临时变量
递归:
函数调用自己本身
函数库:
在库中只包含定义的函数,由另一个脚本来调用函数库中的代码
抽象步骤:
-
函数库中定义方法
-
函数库赋权
-
在另一个脚本中 . /函数库名 来调用函数库
-
执行这个脚本
数组
数组的作用:可以一次性定义多个变量。数组的长度是不限的。形成变量池,可以随时遍历使用。
数组的元素类型:int string float
数组的写法:索引下标从0开始
获取数组的长度:echo ${#test[*]}
通过下标获取值:echo ${test[下标]}
数组的遍历(⭐):for i in ${arr[*]} 或者如下:
数组的切片:取数组当中某一段元素的值。
echo ${test[*]:2:2}:表示从下标2开始往后数2个,包括它本身
数组的替换,比如说4/44,就会把数组里所有4替换成44
- 临时替换:
- 永久替换:
- unset arr[3]会把arr数组中3下标以及3下标上的数一起删除了,也就是说,这个数组里没有下标3这个位置了。
追加元素:在原有的新的数组当中,追加新的元素
- arr+=(arr1 arr2)
- 也可以用下标指定位置,比如说arr[8]=arr3
注意这种方法如果下标位置过大,数组只会在最后一位追加