1. 函数的作用
将命令序列按格式写在一起可方便重复使用命令序列避免代码重复。
使用函数可以将大的工程分割为若干小的功能模块,代码的可读性更强。
在编写脚本时,有些脚本可以反复使用,可以调用函数来解决。
2. 函数的定义
1.
function 函数名 {
>命令序列
>}
2.
函数名(){
命令序列
}
3. 函数的返回值
return表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值 (如果使用函数那么$?使用就会受限,我们可以使用return定义$?的返回值,来判断函数中命令是否成功)
使用原则:
函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
退出状态码必须是0~255,超出时值将为除以256取余
4. 查看与删除函数
查看函数:
declare -f
删除函数:
unset 函数名
5. 传递参数
6. 函数变量的作用范围
(加local关键字可以让变量只在函数中生效,不影响外界环境)
7. 函数的递归
函数调用自己本身的函数
例 阶乘
8. 数组
8.1 数组的定义
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由 0 开始。
Shell 数组用括号来表示,元素用"空格"符号分割开。
8.2 数组的语法格式
定义数组格式:
-
数组名=(value0 value1 value2 value3 ......)
-
数组名=([0]=value [1]=value1 [2]=value2 ....)
-
列表名="value0 value1 value2 value3 ...... "
数组名=($列表名)
-
数组名[0]="value1"
数组名[1]="value2"
数组名[2]="value3"
8.3 数组的数据类型
- 数值类型
- 字符类型
- 使用 “ ”(双引号) 或者 ‘ ’ (单引号)定义
8.4 获取数组的长度
8.5 数组的遍历
查找10个数中的最大值与最小值
8.6 删除数组
unset 数组名 将整个数组删除
unset a[0] 只删除数组第一个值