每种语言都有自己的函数,shell也不例外。支持函数,它可以将脚本程序划分成一个个相对独立的代码块,使代码的模块化,结构更加清晰,并有效地减少程序的代码量,提高代码的复用率。
函数格式
function fun_name()
{
action;
}
或者
fun_name()
{
action;
}
注:()中不能带参数
参数都是直接以变量的形式写在函数中,传递参数的时候使用${参数},若果不加${},直接输入参数,则把参数当作字符串来处理,不会当作变量
例
结果
注:¥?用来接收FunSum的返回值
例:传递参数
结果
注:函数中的参数$后面是多少,则取值的时候就取传递的参数中第几个,当大于9时,函数中要获取参数需要像示例中获取第五个参数一样添加大括号{}
其他特殊字符用来处理参数
$0:是脚本本身的名字
$#:传递到脚本的参数个数
$*:以一个单字符串显示所有向脚本传递的参数
$$:脚本运行的当前进程ID号
$!:后台运行的最后一个进程的ID号
$@:与$*相同,但是使用时加引号,并在引号中返回每个参数
$-:显示Shell使用的当前选项,与set命令功能相同
$?:显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误
变量作用域
在函数调用之前,定义变量,则定义的是全局变量,当执行函数的时候读取变量使用
在函数中定义变量,local key=value,则为函数内部的变量,函数在执行的时候读取变量使用,但是该变量在函数外不生效