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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值