函数的运用
- 一、函数的定义
- 二、简单函数实验
- 两个数字的运算:
- 调用位置变量
- 函数变量的作用范围
- 三、函数的递归
- 阶乘
- 递归目录
- 四、函数库
一、函数的定义
shell函数是经常使用的,因为有些命令序列是需要反复调用执行的,将命令序列按格式写在一起,以便可以重复的使用。
shell函数:
使用函数可以避免代码重复
使用函数可以将大的工程分割为若干小的功能模块,代码的可读性更强
格式为:
[function] 函数名(){
命令序列
[return x]
}
[function]是可选的,表示该函数的功能,是可以省略掉的,函数后面加一个(),里面是没有内容,而执行的命令序列是放在{}里面的,[return x]的作用是当命令序列执行完后返回给系统的一个值,该项也是可以省略的。
函数返回值:
return表示退出函数并返回一个退出值,脚本可以用$?变量显示该值
使用原则:
1、函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
2、退出的代码必须是0~255,超出时值将为除以256取余
建议在操作过程中,先给函数的结果赋予一个变量,这样后期还可以对函数进行加工
函数名虽然可以自定义随便设置,但是不要跟系统命令一样,不然无法使用,会有冲突
函数和$?之间不能夹杂别的命令,因为显示的是上一个命令的值,如果之间有其他命令,则会显示其他命令而不是函数的返回值。
二、简单函数实验
两个数字的运算:
调用位置变量
或者
函数里面的代表的是函数后面脚本之内的位置变量,而下面的$1代表的是脚本之外的位置参数。
函数不管放在哪儿,如果没有定义或者调用,是不会执行
函数变量的作用范围
函数在shell脚本中仅对当前的shell环境中生效,shell脚本中变量默认全局有效,也就是函数外的命令也可以调用
使用local命令可以将变量限定在函数内部使用
三、函数的递归
就是在条件满足的情况下,自己调用自己,知道条件不满足为止。
阶乘
以输入参数为五为例:
递归目录
四、函数库
可以先建立一个脚本文件作为函数库,在使用时就可以直接调用函数库里面的函数。
- 先建立以一个函数库
- 写一个脚本,可以直接调用函数库