shell函数
可以用户定义函数,然后在shell脚本中可以随便调用
函数的格式
方法1
function 函数名 {
命令序列
}
方法2
函数名 () {
命令序列
}
函数返回值return
- return表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值
- 函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
- 退出状态码必须是0-255,超出值将会除以256取余
函数参数
- 在Shell中,调用函数时可以向其传递参数,函数中的
$1
、$2
、$3
、$4
…$#
、$*
表示调用函数后面所跟的参数
与函数外的$1
、$2
…是调用键盘输入在脚本文件后的值 - 如图
- 例题:从1累加到10的值用传参的方式计算
- 将相加的值乘以2
通过把函数赋值的方式
函数变量的作用范围
- 函数在Shell脚本中仅在当前Shell环境中有效
- Shell脚本中变量默认全局有效
- 将变量限定在函数内部使用local命令
递归
- 函数调用自己本身的函数
- 阶乘实例
#分析思路比如输入5时
fact 5
$1=5 temp=4 result=fact 4 echo 5 * (4 * (3 * (2 * (1))))
fact4
$1=4 temp=3 result=fact 3 echo 4 * (fact 3)
fact3
$1=3 temp=2 result=fact 2 echo 3 * (fact 2)
fact2
$1=2 temp=1 result=fact 1 echo 2 * (fact 1)
fact1
1
递归目录
递归查看/var/log目录下的目录和文件
函数库
-
函数库的作用:把实现同一类型功能的函数写在同一个脚本文件中方便归类,使用该函数时直接调用即可
-
定义一个简单算法函数库,该函数库内函数功能如下
-
加法函数add
-
减法函数subtraction
-
乘法函数multiplication
-
除法函数divider
-
调用函数库里的函数