一、函数的定义和使用
第一种格式:
name()
{
xxxxx
}
第二种格式:
function name
{
xxxxx
}
调用直接使用函数名调用,函数内部可以直接使用参数$1..
二、函数传递参数
shell中传参不需要在函数名后面加参数,可以直接在函数中使用参数$1、$2...;调用函数时可直接用 functionname $1 $2..
三、函数返回值
(1)return:只能返回1-255的整数,供其他地方调用获取状态,通常返回0或1:0代表成功,1代表失败
(2)echo:可以返回任何字符串结果,返回数据。
扩展:
(1)shell中的&&和||
&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;
||则与&&相反。如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);
(2)sh -x:脚本调试,显示脚本执行过程
例1:定义一个函数查看某个进程存在则return0
例2:查看系统所有用户,定义函数返回值
三、局部变量和全局变量
local:定义局部变量,只能在函数内
函数内和函数外存在同名变量,则函数内会覆盖外部
四、函数库
经常使用重复的代码封装成函数文件,一般由其他脚本调用。
例1:定义一个函数库,计算器
我们在一个shell脚本中调用格式 . 文件绝对路径
例2:打印系统运行情况函数sys_load,显示内存运行情况和磁盘的情况。
在命令行调用函数库
扩展:
库文件后缀通常.lib结尾
库文件通常没有x权限即可执行权限
库文件无需和脚本同级目录
第一行通常使用 #!/bin/echo,输出警告信息,避免用户执行