您的位置:首页 > 运维架构 > Shell

shell 函数的返回值和退出状态

2012-09-04 09:28 351 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: