八使用Shell函数
Posted 钟桂耀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八使用Shell函数相关的知识,希望对你有一定的参考价值。
在Shell脚本中,将一些需要重复使用的操作,定义为公共的语句块,即可称为函数
使用函数的好处?
使脚本代码更简洁,增强易读性
提高Shell脚本的执行效率
函数定义方法
基本格式1
function 函数名 {
函数的功能体
}
格式2:
函数名() {
函数的功能体
}
注:定义函数名,不会被输出
使用函数时的规则:
先定义后调用;可以只定义不调用
在同一个脚本里,函数名相同时,后定义生效
函数名区分字母大小写
在函数体内定义的变量是局部变量,只能在当前函数内使用
在函数体外定义的变量是全局变量,全局变量所有函数都可以使用
函数之间可以互相调用
定义一次,可多次重用
Bash调用函数时不会开启新的子Shell,会在现有的shell环境中执行该函数
在fun.sh脚本里定义函数sum.two(功能是输出数字10 和20 相加的和,并输出计算结果)
[[email protected] shell]# cat sum_two.sh #!/bin/bash sum_two(){ sum=`expr 10 + 20` echo "10 +20 = $sum " } sum_two
在脚本中建一个对2个整数求和的加法器
[[email protected] shell]# cat funadder.sh #!/bin/bash adder(){ echo $(($1+$2)) } adder 12 34 adder 56 789
服务脚本中的函数
适用于复杂的启动/终止控制操作
方便在需要时多次调用
递归调用示例
Shell版的fork炸弹
仅13个字符:.(){.|.& };.
递归死循环,可迅速耗尽系统资源
无限的生成新的进程,造成死机
代码解析
.() #定义一个名为.的函数 { #函数块的开始标记 .|.& #在后台递归调用函数. ; #函数块的结束标记 . #再次调用函数
函数可以递归调用(函数自己调用自己)
以上是关于八使用Shell函数的主要内容,如果未能解决你的问题,请参考以下文章