您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 编程语言综合 >> 正文

Shell中函数返回值超出问题

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   这篇文章主要介绍了Shell中函数返回值超出问题,shell中通过return返回是有限制的,最大返回255,超过255,则从0开始计算,需要的朋友可以参考下

  1、前言

  快半年没有写博客了,荒废了很久,工作中的杂事太多,自己越来越懒了。为了鞭策自己成长,还是要坚持写写博客,记录自己的成长。

  2、shell函数介绍

  语法:

   代码如下:

  [ function ] funname [()]

  {

  action;

  [return int;]

  }

  说明:

  (1)可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。

  (2)参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255),还可以通过echo 直接返回。

  3、注意

  shell中通过return返回是有限制的,最大返回255,超过255,则从0开始计算。

  今天在工作中犯了这个错误,导致输出的值不对,被测试部提bug。

  shell脚本调用例子:

  代码如下:

  #!/bin/sh

  echo "shell function operation"

  func1()

  {

  local num1=100

  local num2=100

  let sum=$num1+$num2

  return $sum

  }

  func2()

  {

  local num1=100

  local num2=155

  let sum=$num1+$num2

  return $sum

  }

  func3()

  {

  local num1=100

  local num2=156

  let sum=$num1+$num2

  return $sum

  }

  func4()

  {

  local num1=100

  local num2=156

  let sum=$num1+$num2

  echo $sum

  }

  func1

  echo "called func1:$?"

  func2

  echo "called func2:$?"

  func3

  echo "called func3:$?"

  sum=`func4`

  echo "called func4:$sum"

  执行结果如下所示: