语法:
[ function ] funname [()]
{
action;操作
[return $cation;]返回结果
}
说明:
1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟变量
$vim test.sh
function ADD()
{
echo"a==" $1
echo"b==" $2
return $(($1+$2))
}
sum=$(ADD $1 $2)
echo $sum
$source test.sh
0
$ADD 100 20
100
20
120
从上面这个例子我们可以知道:
1、必须在调用函数地方之前,声明函数,shell脚本是逐行运行。不像其它语言一样先预编译再执行。因此必须在使用函数前先声明函数。
2、sum=$(ADD $1 $2); 通过这种调用方法,我们清楚知道,在shell 中 单括号里面,可以是:命令语句。 因此,我们可以将shell中的函数,看作是定义一个新的命令,它是命令,因此 各个输入参数直接用 空格分隔。 还需知道,命令里面获得参数方法可以通过:$0…$n得到。 $0代表函数本身。
3、函数返回值,只能通过$? 系统变量获得,直接通过=只能获得空值。根据上一条的理解,因为函数是一个命令,而在shell获得命令返回值,都需要通过$?获得。