shell中每个函数都有一个退出状态,如果需要函数有返回值,也可以由返回值。退出状态和返回值是两个不同的概念,新手容易混淆,这里一个小例子说明一下。
shell中函数的返回值跟其他语言略有不同,通常我们通过return语句输出函数的返回值,在shell中确实错的;通常我们用echo将输出显示到输出中,在shell中确不是照样的。
shell中的函数退出状态是通过exit或者return语句带上一个变量来表示的,
exit $i
其中,$i不能大于255。
shell中的返回值是通过echo语句输出的
test()
{
echo 'kevin'
}
ret=`test`
如下是另一个例子:
# !/bin/sh
sum()
{
echo $(($1+$2))
return $(($1-$2))
}
sum $1 $2
c=$(sum $1 $2)
echo $?
echo $c
执行命令:./bashTest 11 1
运行结果是:
12 —— sum $1 $2的结果
10 —— echo $?的结果,因为return的值为10
12 —— echo $c的结果,值为12,所以c并不会被附上return的值,echo $c时调用了sum函数,所以打印了12