1.Shell函数的本质
- 本质是一段可以重复使用的脚本代码
- 这段代码被提前编写好了,放在指定的位置,使用时直接调取即可
- Shell中的函数和C++、Jave、Python、C#等其他编程语言中的函数类似,只是在语法细节有所差别
2.Shell函数的语法格式
function name() {
statements
[return value]
}
- 关于各个部分的说明:
- function 是Shell中的关键字,专门用来定义函数
- name 三个函数名
- statements 是函数要执行的代码,也就是一组语句
- return value 表示函数的返回值,其中return是Shell关键字,专门用在函数中返回一个值(用【】括起来的这一部分可以写也可以不写)
- 注意: 用{ }包围的部分成为函数体,调用一个函数,实际上就是执行函数体中的代码
3.函数定义的简化写法
- 简化写法1
- 函数定义时也可以不写function关键字
name() {
statements
[return value]
}
- 简化写法2
- 若写了function关键字,也可以省略函数名后面的小括号
function name {
statements
[return value]
}
4.函数调用
- 调用Shell函数时可以给它传递参数,也可以不传递
- 如果不传递参数,直接给出函数名字即可:name
- 如果传递参数,那么多个参数之间可以空格分隔:name parem1 param2 param3
- 注意:
- 不管是哪种形式,函数名字后面都不需要带括号
- 和其他编程语言不同的是,Shell函数在定义时不能指明参数,但在调用时却可以传递参数,并且给它传递什么参数它就接收什么参数,即没有实参和形参的区别
- Shell不限制定义和调用的顺序,你可以将定义放在调用的前面,也可以反过来,将定义放在调用的后面,当linux版本不同时,限制也不同,红帽版本只能先定义再调用
5.函数参数
- 和C++、C#、Python等大部分编程语言不同,Shell中的函数在定义时不能指明参数,但是在调用时可以传递参数
- 函数参数是Shell位置参数的一种,在函数内部可以使用 $n 来接收,例如,$1表示第一个参数,$2表示第二个参数,以次类推
- 除了$n,还有另外三个比较重要的变量:
- $# 可以获取传递参数的个数
- $@或者 $* 可以一次性获取所有参数
6.应用
- 示例1
- 示例2
来源:CSDN
作者:Outside!
链接:https://blog.csdn.net/qq_45594312/article/details/104307114