自动化运维必须要学的Shell脚本之——函数的使用

一、函数介绍

1.1 是什么的函数

函数定义:封装的可重复利用的具有特定功能的代码
函数就是可以在shell脚本当中做出一个类似自定义执行的命令的东西,最大的功能就是简化我们很多的代码。

  • 将命令序列按照格式书写在一起
  • 可方便重复使用命令序列

1.2 函数的格式

写法一:

[function] 函数名 (){
	命令序列
	[return x]         #使用return或者exit可以显式的结束函数
}

写法二:

函数名(){
	命令序列
}

1.3 函数调用的方法

函数名  [参数1] [参数2]

案例:写一个脚本里面包括函数备份yum线上源,创建yum本地源和清理缓存安装httpd服务。
在这里插入图片描述
结果:
在这里插入图片描述

1.4 函数的返回值

return表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值
使用原则:

  • 1、函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码;
  • 2、退出状态码必须是0~255,超出时值将为除以256取余。

在这里插入图片描述
结果:返回值结果超过256,会进行余256计算,然后取结果
在这里插入图片描述

案例:将函数返回值赋予变量,然后使用该变量进行计算
在这里插入图片描述
结果:

在这里插入图片描述

1.5 函数的传参

函数也是有参数的,它的内置变量与shell脚本很类似,函数名称代表示$0,而后续的变量也是以$1、$2…来替换的,这里比较容易搞混,因为函数是一个方法,我们看代码的时候直接从代码的主体部分去看,然后代码中调用了什么函数我们再去看这个函数是做什么的就不容易搞混了,以下面实验举例:

在这里插入图片描述
1.直接看代码主体部分,num1和num2分别为用户输入的两个变量的值,这里输入的是10和20;
2.然后发现调用了函数test,并传入了两个参数,第一个数为num1,也就是10,第二个数是num2,也就是20;
3.然后在函数体内,定义了变量sum等于两个参数的和,也就是10和20,10+20=30.
结果:
在这里插入图片描述

1.6 函数变量的作用范围

函数在shell脚本中仅在当前shell环境中有效
shell脚本中变量默认全局有效
将变量限定在函数内部使用local命令

案例:测试变量作用域
在这里插入图片描述
测试结果:
在这里插入图片描述

1.7 函数的递归

函数调用自己本身的函数
案例:阶乘
在这里插入图片描述
结果:
在这里插入图片描述

1.8 递归目录

有点复杂,自己看…
在这里插入图片描述
结果:目录和文件会以这个形式显示出来
在这里插入图片描述

1.8 创建函数库

shell 函数库也是一个 shell 脚本,不过你可以在一个函数库中仅存储其它 shell 脚本中需要调用的函数。
创建函数库脚本文件:myfuncs.sh,在里面写入加法、减法等运算的函数
在这里插入图片描述
调用函数库内的函数,函数库的脚本文件要使用绝对路径
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码海小虾米_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值