shell脚本之函数

1. 函数的作用

将命令序列按格式写在一起可方便重复使用命令序列避免代码重复。

使用函数可以将大的工程分割为若干小的功能模块,代码的可读性更强。

在编写脚本时,有些脚本可以反复使用,可以调用函数来解决。

2. 函数的定义

1.

function 函数名 { 

​>命令序列

>}

shell脚本之函数_第1张图片

2.

函数名(){

命令序列

}

shell脚本之函数_第2张图片

3. 函数的返回值

return表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值 (如果使用函数那么$?使用就会受限,我们可以使用return定义$?的返回值,来判断函数中命令是否成功)

使用原则:
函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码

退出状态码必须是0~255,超出时值将为除以256取余

4. 查看与删除函数

查看函数:

declare -f

shell脚本之函数_第3张图片

删除函数:

unset 函数名

shell脚本之函数_第4张图片

5. 传递参数

shell脚本之函数_第5张图片

shell脚本之函数_第6张图片

6. 函数变量的作用范围

(加local关键字可以让变量只在函数中生效,不影响外界环境)

shell脚本之函数_第7张图片

shell脚本之函数_第8张图片

shell脚本之函数_第9张图片

shell脚本之函数_第10张图片

7. 函数的递归

函数调用自己本身的函数

例 阶乘

shell脚本之函数_第11张图片

shell脚本之函数_第12张图片

8. 数组

8.1 数组的定义

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。

与大部分编程语言类似,数组元素的下标由 0 开始。

Shell 数组用括号来表示,元素用"空格"符号分割开。

8.2 数组的语法格式

定义数组格式:

  1. 数组名=(value0 value1 value2 value3 ......)

  2. 数组名=([0]=value [1]=value1 [2]=value2 ....)

  3. 列表名="value0 value1 value2 value3 ...... "

    数组名=($列表名)

  4. 数组名[0]="value1"

    数组名[1]="value2"

    数组名[2]="value3"

8.3 数组的数据类型

  • 数值类型
  • 字符类型
  • 使用 “ ”(双引号) 或者 ‘ ’ (单引号)定义

8.4 获取数组的长度

8.5 数组的遍历

shell脚本之函数_第13张图片

shell脚本之函数_第14张图片

查找10个数中的最大值与最小值
shell脚本之函数_第15张图片

8.6 删除数组

unset 数组名      将整个数组删除
unset a[0]        只删除数组第一个值

shell脚本之函数_第16张图片

shell脚本之函数_第17张图片

8.7 数组切片

shell脚本之函数_第18张图片

你可能感兴趣的:(linux)