
作为一个经常编写脚本的运维人员,他会发现问题. 很多时候,我们在不同的脚本中重复编写相同的代码. 例如,我们将使用正则表达式来判断IP地址的合法性. 如果我们每次编写与IP匹配的表达式,则整个表达式都会被记录下来. 全部花光了shell脚本 函数,你累吗?当然,有些人会说,保存正确的代码后,当您需要使用此代码时,只需将其直接粘贴到正在编写的脚本中即可. 没错,但这是在许多脚本中重复存储的相同代码,从而增加了脚本中的代码量. 有没有一种方法可以做到两全其美,因此我们的脚本代码很小,可以节省每次粘贴同一段代码的操作,并且还可以完美地调用此代码. Shell函数的出现为我们彻底解决了这个问题.
功能介绍
Function(功能)是由几个shell命令组成的语句块,以实现代码重用和模块化编程
它在形式上与Shell程序类似,不同之处在于它不是一个单独的进程并且不能独立运行,而是Shell程序的一部分
函数和shell程序之间的区别:
Shell程序在子Shell中运行
Shell函数在当前Shell中运行. 因此,在当前的Shell中,该函数可以修改Shell中的变量
定义函数的语法格式:
函数由两部分组成: 函数名称和函数主体
语法1:
函数f_name {
...功能主体...
}
语法2:
function f_name(){

...功能主体...
}
语法3:
f_name(){
...功能主体...
}
如何定义函数:
1,可以在交互式环境中直接定义函数,并且可以调用当前的shell环境
2. 该函数可以在脚本文件中定义为它的一部分,并且只能由其自身调用
3,可以编写为单独的函数库文件,可以调用任何脚本
撤消功能方法: 取消设置功能名称
如何调用函数:
1. 在函数库中调用函数时,必须首先使用source或. 加载函数库文件,然后指定要调用的函数的名称
注意:
2. 在命令行上定义或由脚本本身定义,您可以直接指定要调用的函数的名称

出现功能名称的地方,它将自动替换为功能代码
函数的生命周期: 在调用时创建shell脚本 函数,并在返回时终止
修改定义的函数:
1. 使用set命令查看所有已定义的函数,并且输出列表包括已加载到Shell中的所有函数
2. 使用unset命令从外壳删除函数;修改后,重新加载函数或函数库文件
函数返回值
该函数有两个返回值:
1,函数执行结果的返回值:
(1)使用echo或printf命令输出
(2)函数主体中调用命令的输出
2. 功能的退出状态码:
(1)返回: 默认值取决于该函数中执行的最后一条命令的退出状态代码
(2)返回#: 自定义退出状态代码,格式为:
返回0返回无错误
返回1-255错误返回

在交互式环境中定义和使用功能
示例代码:
dir(){
> ls -l </ p>
>}
定义此功能后,如果在命令行上输入dir,则显示结果与ls -l相同
dir功能将一直保留到用户退出系统或执行unset命令: unset dir
定义和使用脚本中的功能
该功能必须在使用前定义,因此该功能定义应放置在脚本的开头,直到外壳程序首次找到它为止.
调用函数仅需要其函数名称
示例代码:
#! / bin / bash
maxnum(){
if [[$ 1 -gt $ 2]];然后
max = $ 1

min = $ 2
elif [[$ 1 -lt $ 2]];然后
min = $ 1
max = $ 2
fi
最大回显为: $ max
回声最小值为: $分钟
}
最大100200
创建功能清单文件
示例代码:
#! / bin / bash
#作者: wangjun
#Contact QQ: 183530300
#版本: 1.0
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-223790-1.html
不然我们怎么去颐和园玩啊
美国有他的算盘
说的真好