【Shell脚本】函数的高级用法

一、函数的定义和使用

第一种格式:

name()

{

    xxxxx

}

第二种格式:

function name

{

    xxxxx

}

调用直接使用函数名调用,函数内部可以直接使用参数$1..

image.png


二、函数传递参数

shell中传参不需要在函数名后面加参数,可以直接在函数中使用参数$1、$2...;调用函数时可直接用 functionname $1 $2..

image.png


三、函数返回值

(1)return:只能返回1-255的整数,供其他地方调用获取状态,通常返回0或1:0代表成功,1代表失败

(2)echo:可以返回任何字符串结果,返回数据。

扩展:

(1)shell中的&&和||

&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;

||则与&&相反。如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);

(2)sh -x:脚本调试,显示脚本执行过程

例1:定义一个函数查看某个进程存在则return0

image.png

image.png

例2:查看系统所有用户,定义函数返回值

image.png

三、局部变量和全局变量

local:定义局部变量,只能在函数内

函数内和函数外存在同名变量,则函数内会覆盖外部

image.png

image.png


四、函数库

经常使用重复的代码封装成函数文件,一般由其他脚本调用。

例1:定义一个函数库,计算器

image.png

我们在一个shell脚本中调用格式 . 文件绝对路径

image.png

例2:打印系统运行情况函数sys_load,显示内存运行情况和磁盘的情况。

image.png

在命令行调用函数库

image.png

扩展:

库文件后缀通常.lib结尾

库文件通常没有x权限即可执行权限

库文件无需和脚本同级目录

第一行通常使用 #!/bin/echo,输出警告信息,避免用户执行

猜你喜欢

转载自blog.51cto.com/11926720/2498009