1.定义
function 函数名(){
#代码块
}
1.shell中的函数没有返回值类型,函数是否有返回值需要看自己的函数如何书写
2.shell中的函数没有参数列表,函数是否有形参需要看函数具体如何书写
3.shell中的函数依然遵循先定义后使用的原则,在shell中函数的声明和定义都是写在一起的,因此在 shell中函数的定义写到函数调用之前.
2.调用
函数名 实参1 实参2 实参3 ........
3.函数获取实参值
$1 $2 .......${n} 第一,二.......n个实参
$# 实参个数
$@ $* 所有参数
4.接收函数返回值
1 .shell 中的所有变量都是全局变量,即使在函数内定义的的变量也全是全局变量,除了使用 local 修饰的变量. 因此在函数外可以直接获取函数定义的全局变量的值2 . 通过 return 返回在函数中如果一个变量使用 local 修饰之后可以通过 return 关键字返回,通过使用 $? 获取函数调用之后的返回结果, $? 的作用获取上一条命令或者函数的执行结果 .注 :return 只能返回 0-255 之间的数3 . 通过在函数中使用 echo 输出变量的值 在函数中使用echo 输出一个使用 local 修饰的局部变量的值 , 如果去接受函数的返回值 , 需要使用命令置换符 . 变量名 = ` 函数名 实参 1 实参 2 ....`
function func1(){
local a=10
return $a
}
func1
#局部变量可以通过return关键字返回,接收时需要使用$?来接收,且只能接收0-255
echo $?
function func2(){
local b=20
echo $b
}
#局部变量还可以通过echo来返回,接收时需要使用命令置换符` `
res=`func2`