function 自定义函数、函数调用

您所在的位置:网站首页 function组句 function 自定义函数、函数调用

function 自定义函数、函数调用

2023-09-21 05:30| 来源: 网络整理| 查看: 265

自定义函数

shell脚本中可以自定义函数,函数定义语法如下:

[ function ] functionname [()] { actions [return n]

}

说明: 1、可以带function fun() 定义,也可以直接fun() 定义,括号内不带任何参数,如果你嫌麻烦,函数定义时也可以不写 function 关键字,但这时必须要写小括号,如果写了 function 关键字,也可以省略函数名后面的小括号; 2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值, return后跟数值n(0-255); 3、函数调用的时候可以传位置参数,位置参数用空格间隔; 4、如果{与命令写在同一行,则需要空一格再写命令,同时如果命令与}同在一行,需要在之间加分号分隔; 5、定义函数函数体不能为空,否则执行会报错。 6、查看定义过的函数:declare -f [函数名] 7、shell中的函数体内还可以定义函数,但外部函数被调用时才会定义并调用他的内部函数。如果内部函数的调用先与外部函数的调用,则此时会报错,因为此时内部函数还未被定义,只有先执行了当外部函数的调用,此时内部函数才被定义了,此后就可以在任何位置调用内部函数了。 8、函数也可以像普通的shell脚本一样接受位置参数。 9、在函数体定义变量时,变量默认是全局的,即在函数体外部也可以访问这个变量,使用local关键字进行声明变量为局部变量,这样的变量就只能在函数体内使用了。局部变量声明:local var_name=”value”

演示示例: function sum() { return expr $1 + $2 }

函数的调用

1、函数要先定义,才能调用,函数调用格式:直接写函数名即可调用,不需要加括号,如:name; 2、调用 Shell 函数时可以给它传递参数,也可以不传递。如果不传递参数,直接给出函数名字即可:name; 3、如果传递参数,那么多个参数之间以空格分隔:name param1 param2 param3; 4、不管是哪种形式,函数名字后面都不需要带括号; 5、和其它编程语言不同的是,Shell 函数在定义时不能指明参数,但是在调用时却可以传递参数,并且给它传递什么参数它就接收什么参数; 6、Shell 也不限制定义和调用的顺序,你可以将定义放在调用的前面,也可以反过来,将定义放在调用的后面。

演示示例: [root@Centos8 shell_scripy]# cat function.sh #!/bin/bash function sum () { echo expr $1 + $2 } sum 34 60

[root@Centos8 shell_scripy]# ./function.sh 94



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3