Bash Shell语法之三函数简介

 Bash Shell语法之三函数简介

一、什么是Bash函数

像其他编程语言一样,Shell 也支持函数。Shell函数必须先定义后使用。函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。

二、Bash函数定义格式

[ function ] fun () {

        函数体

[ retrun n ]

}

  说明:

    1、可以带function fun()  定义,也可以直接fun() 定义,不带任何参数。

    2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)

三、函数返回值

函数返回值,可以用return语句;如果不加,会将最后一条命令运行结果作为返回值。Shell 函数返回值只能是整数,一般用来表示函数执行成功与否,0表示成功,其他值(非0)表示失败。

四、函数参数

在函数种调用函数参数的方式,同脚本中调用脚本参数的方式:位置参数 $1 $2 ……$# $* $@

五、函数调用

函数名出现的地方,会被自动替换为函数;要执行函数中的命令必须在脚本中或命令行上调用函数

六、函数实例

1、

1.png

2、2.png

3、函数定义实例

4.png

5.png

  从上面这个例子的结果我们可以得到几点结论:

         1、必须在调用函数地方之前,声明函数,shell脚本是逐行运行。不会像其它语言一样先预编译。一次必须在使用函数前先声明函数。所以第一行报错。

         2total=$( fSum 3 2);  通过这种调用方法,我们清楚知道,在shell 单括号里面可以是命令语句。 因此,我们可以将shell中函数,看作是定义一个新的命令,它是命令,因此 各个输入参数直接用 空格分隔一次,命令里面获得参数方法可以通过:$0…$n得到。 $0代表函数本身。

         3、函数返回值,只能通过$? 系统变量获得,直接通过=获得是空值。其实,我们按照上面一条理解,知道函数是一个命令,在shell获得命令返回值,都需要通过$?获得。

4、函数作用域实例

  6.png

7.png

  我们一起来分析下上面这个实例,可以得到如下结论:

  1. 定义函数可以与系统命令相同,说明shell搜索命令时候,首先会在当前的shell文件定义好的地方查找,找到直接执行。

  2. 需要获得函数值:通过$?获得

  3. 如果需要传出其它类型函数值,可以在函数调用之前,定义变量(这个就是全局变量)。在函数内部就可以直接修改,然后在执行函数就可以读出修改过的值。

  4. 如果需要定义自己变量,可以在函数中定义:local 变量= ,这时变量就是内部变量,它的修改,不会影响函数外部相同变量的值

原创文章,作者:wxdz_2004(古雨秋),如若转载,请注明出处:http://www.178linux.com/4067