一、概念
函数,就是一对命令的集合体,在书写代码时,有时候,一个“任务”有很多行上百行代码,如何区别其他“任务”:
这时候,我们把代码以函数的方式,区分开来,实际就是把一堆代码,起一个名字;
目的:规范脚本,让脚本开发模块化,方便后期调用,调试的时候,只需要注释掉函数即可;
二、函数的格式
第一种格式:最完整的方式
function 自定义名称(){
命令
命令
.............
return n #函数的返回值
}
第二种格式:精简写法,一般都用这种来写。(去掉function)
自定义名称(){
命令
命令
.............
return n #函数的返回值
}
第三种格式:精简写法【去掉()】
function 自定义名称 {
命令
命令
.............
return n #函数的返回值
}
三、函数实战
1,简单案例
· 编辑脚本
[root@gong ~]# vim fun.sh
#!/bin/bash
function xinjizhiwa() {
echo "欢迎来到《心机之蛙》自习室"
echo "在这里,你可以自学技术知识"
echo "白嫖,不花钱"
echo "学的快,学得会"
echo "最重要:蛙总,长得帅,有才华,赚得多"
}xinjizhiwa
· 执行脚本
[root@gong ~]# sh fun.sh
欢迎来到《心机之蛙》自习室
在这里,你可以自学技术知识
白嫖,不花钱
学的快,学得会
最重要:蛙总,长得帅,有才华,赚得多
2,函数传参
· 参数类型介绍
$n #脚本的第n个参数
$0 #脚本名称
$# #传参的个数
$@ #所有参数
$* #所有参数
· 参数脚本案例
检查任意端口是否被监听;
[root@gong ~]# vim tel.sh
#!/bin/bash
#测试本机的80端口是否监听?
xinjizhiwa() {
ss -tnulp|grep $1 > /dev/null
if [ $? -eq 0 ]; then
echo "端口畅通,正在监听 $1 端口"
else
echo "端口未被监听,请检查服务故障!~"
fi
}
xinjizhiwa $1
[root@gong ~]# sh tel.sh 80
端口畅通,正在监听 80 端口
[root@gong ~]# sh tel.sh 88
端口未被监听,请检查服务故障!~
[root@gong ~]# sh tel.sh 22
端口畅通,正在监听 22 端口
[root@gong ~]# sh tel.sh 20
端口未被监听,请检查服务故障!~
至此,函数学习完毕了