函数
- 1、概述
- 2、函数
- 2.1、定义函数的语法
- 2.2、函数定义实例演示
- 2.3、函数调用
- 3、shell函数返回值
- 4、总结
1、概述
大家好,我是欧阳方超,今天记录一下shell中函数的定义与调用。
2、函数
2.1、定义函数的语法
函数可以实现功能的复用,定义函数的语法如下:
functionname() {
command
return value
}
或者
function functionname() {
command
return value
}
或者
function functionname {
command
return value
}
上面的三种写法都是定义了一个名为functionname的函数,其中:
function关键字是可选的,当使用了function关键字后,函数名后的圆括号也可以不写;
functionname是函数名;
command是调用函数时要执行的命令,可以有很多语句;
return value表示函数的返回值,return是关键字,return语句在可写也可不写;
2.2、函数定义实例演示
创建firstFunc.sh脚本,里面写入如下内容:
#!/bin/bash
function sing {
echo "I am singing!"
}
2.3、函数调用
可以给函数传参也可以不传参,在shell中,函数是否有参数不是在定义函数时决定的,而是在函数调用时决定的,比如上面定义的sing()函数,定义时在其圆括号中并没有写任何参数,但在调用时却可以传递参数。
调用函数不传参数的场景,下面的示例中对sing()函数直接调用并且不传参
#!/bin/bash
function sing {
echo "I am singing!"
}
echo "--begin--"
sing
echo "--end--"
下面的示例中对sing()函数调用并且传参,如果传多个参数互相之间用空格隔开即可,如果某个参数本身就带空格,该类型的参数需要用单引号或双引号引起来,注意在shell中,$1表示shell脚本本身的名称,$1、$2、$3……$n用以接收传递给函数的第一个、第二个、第三个参数……第n个参数,
#!/bin/bash
function sing {
echo $1 "I am singing!"
}
echo "--begin--"
sing Hi
echo "--end--"
3、shell函数返回值
shell中函数的返回值比较特别,返回值表示函数的退出状态,其范围只能是0至255之间的数字,0表示成功,其他值都表示失败。如果函数中没有显式的return语句,那么就使用函数的退出状态(也就是最后一条命令的退出状态)作为返回值,此时如果要写上return语句,可以这么写return $?,其中$?是一个特殊的变量,用来获取上一条命令的退出状态。
4、总结
shell中函数的定义与其他编程语言类似,只是在调用时才能体现出传参、不传参的问题,还有shell中函数的返回值有其自身特点,与其他语言亦有区别。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。