函数

  • 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--"

shell functio shell function函数用法_函数调用

3、shell函数返回值

shell中函数的返回值比较特别,返回值表示函数的退出状态,其范围只能是0至255之间的数字,0表示成功,其他值都表示失败。如果函数中没有显式的return语句,那么就使用函数的退出状态(也就是最后一条命令的退出状态)作为返回值,此时如果要写上return语句,可以这么写return $?,其中$?是一个特殊的变量,用来获取上一条命令的退出状态。

4、总结

shell中函数的定义与其他编程语言类似,只是在调用时才能体现出传参、不传参的问题,还有shell中函数的返回值有其自身特点,与其他语言亦有区别。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。