shell函数
shell脚本中的代码是按照执行的优先级的顺序从上往下抒写的,代码量越大,在脚本调试的时候就越难排错,当因执行需要调整代码执行顺序的时候就需要不断的复制粘贴,或者删除部分代码来完成,这和从写一个脚本花费的时候相比甚至需要更长的时间。
代码量大后遇到的问题:
-
单个脚本代码量大 (300-500行)
-
阅读修改耗时费力
-
排错困难
-
改变执行顺序困难
为了解决这些问题,我们可以把代码模块化,按需调用。
一、函数介绍
(函数默认不会执行,除非调动!)
shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数。给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能。
将完成一个功能的一段代码进行命名、封装
函数的优点:
- 代码模块化,调用方便,节省内存
- 代码模块化,代码量少,排错简单
- 代码模块化,可以改变代码的执行顺序
二、函数的语法
语法一:
函数名 () {
代码块
return N
}
语法二:
function 函数名 {
代码块
return N
}
函数中return说明:
1.return可以结束一个函数,类似于前面讲的循环控制语句break(结束当前循环,执行循环体后面的代码)
2.return默认返回函数中最后一个命令的退出状态,也可以给定参数值,该参数值的范围是0-256之间。
3.如果没有return命令,函数将返回最后一个Shell的退出值
三、函数定义和调用
函数定义:
start () {
echo "Apache start ....[OK]"
return 0
}
stop () {
echo "Apache stop ...[FULL]"
}
函数调用:
#!/bin/bash
start () {
echo "Apache start ....[OK]"
return 0
}
stop () {
echo "Apache stop ...[FULL]"
}
start