shell脚本之函数与实践

1、函数的作用:
函数的功能就是将程序里多次被调用的相同代码组合起来,并取一个名称(即为函数名),以便在调用时,直接调用这个函数名称即可。
2、函数的语法
1、标准写法
function 函数名 (){
命令
return n

2、简化写法,不如推荐写法
函数名 {
命令
return n

3、简化写法
函数名 () {
命令
return n
}
3、函数执行说明
1、函数定义必须在要执行的程序前面定义或者加载
2、shell执行系统中各种程序的顺序:别名—函数—系统命令—可执行文件
3、如果函数存在一个独立的文件中,被脚本加载使用时,需要使用source或者“.”来加载
4、函数执行时会和调用它的脚本共用变量,也可以为函数定义局部变量或特殊位置参数
5、为函数定义局部变量使用local命令,这些变量离开函数就会失效
6、函数可以带参数执行,shell的位置参数,都可以作为函数的参数使用
7、函数的参数变量,在函数体内定义
4、函数基础实践

#!/bin/bash
china () {
	echo "Welcome to Beijing"
	return 0
}

5、函数体与脚本分离
思路:
1、定义函数体文件

#!/bin/bash
china () {
	echo "Welcome to Beijing"
}

2、脚本文件调用函数

#!/bin/bash
[ -f /root/scripts/man   ] &&  source /root/scripts/man  ||  exit 1   #判断函数文件是否存在,并加载

china		#调用函数

6、带参数的函数脚本

#!/bin/bash
name () {
	echo "My name  is $1"
	return 0
}
name $1

7、函数传参转换成脚本文件命令行传参,判断指定网站URL是否正常

#!/bin/bash
function usage () {
	echo "USAGE:$0 weburl"    #定义用法函数,如果输入错误,提示用法
	return 0
}
function checkurl () {
	wget --spider -q -o /dev/null -T 10 --tries=1 $1   #检测weburl
	if [ $? -eq 0 ]
	   then 
	      echo "The Website is  ok"
	else 
	      echo "The Website is no"
	fi
}
function main () {		
	if [ $# -ne 1 ]			#判断参数个数,避免多个参数引起错误
	then 
		usage
	fi
	checkurl $1 
}
main $*			#将命令行得到的所有参数,也作为函数的参数传递给函数

8、引用系统函数库

#!/bin/bash
. /etc/init.d/functions     #加载系统函数库
function china () {
	if [ "$1" =  "china" ]
	then
	action "yes" /bin/true		#调用系统函数库中action函数
	else
	action "no" /bin/false
	fi
}
china $*      #将所有命令行参数作为函数参数调用

执行效果:

[root@localhost scripts]# bash sysfunction.sh china
yes                                                        [  确定  ]
[root@localhost scripts]# bash sysfunction.sh chin
no                                                         [失败]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

加菲的哥哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值