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"

执行结果如下所示:

linux函数没有返回值导致溢出,Shell中函数返回值超出问题相关推荐

  1. c语言函数返回值类型必须,C++中函数类型与定义的函数返回值类型必须相同么?...

    C++中函数类型与定义的函数返回值类型必须相同么?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C++中函数类型与定义 ...

  2. pandas使用fillna函数并设置fffill参数使用列中的前序值填充缺失值(replace missing values with preceding values in column in d

    pandas使用fillna函数并设置fffill参数使用列中的前序值填充缺失值(replace missing values with preceding values in column in d ...

  3. 动态函数监控技术在缓冲区溢出检测中的应用

    动态函数监控技术在缓冲区溢出检测中的应用 摘要:本文通过对Window环境下函数劫持方法的分析,并结合调试器技术,提出了动态监测进程函数调用的方法.同时,对缓冲区溢出shellcode进行了分析,用有 ...

  4. shell基础---shell中的时间值提取(date)

    shell中的时间值提取(date) 方法1 # date +%F # date +%T # cat time.sh #!/bin/bashDATE=`date +%F | sed 's/-//g'` ...

  5. shell中的时间值提取(date)

    shell中的时间值提取(date) 方法1 # date +%F # date +%T # cat time.sh #!/bin/bashDATE=`date +%F | sed 's/-//g'` ...

  6. jsonpath:从庞大的接口返回结果(返回结果为字典类型)中取字段值

    从庞大的接口返回结果(返回结果为字典类型)中取字段值,返回结果是list s = {"ec": 0, "errcode": 0, "em": ...

  7. 【Java】从键盘中输入一个值,在数组中查找该值的索引并输出

    问题: 从键盘中输入一个值,在数组中查找该值的索引并输出 代码: package learnjava;import java.util.Scanner;public class demo13 {pub ...

  8. Linux拓展之Shell中函数的返回值

    概述 在 Shell 脚本中的函数中有两种方式进行返回值: return 语句:仅能返回 [0, 255] 之间的整数,常用于表示返回函数的执行结果状态. echo 语句:能返回任何数字.任何字符串, ...

  9. linux里返回状态命令行,Shell $?获取函数返回值或者上一个命令的退出状态

    $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值. 所谓退出状态,就是上一个命令执行后的返回结果.退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1, ...

最新文章

  1. eclipse中统计代码行数
  2. expandableListView 总结
  3. C++指针和数组的区别(不能混用的情况)
  4. LeetCode 2139. 得到目标值的最少行动次数(贪心)
  5. matlab验潮站,验潮站的作用是什么
  6. MadFS:高性能超算缓存文件系统——助力“鹏城云脑II”获世界IO500排行榜冠军...
  7. book1复习 使用java理解程序逻辑
  8. apriori算法python_清华学霸亲测有效,每日自学两小时Python,学完就能做项目
  9. 在线编辑ewebeditor
  10. 编写更加稳定、可读性强的JavaScript代码
  11. java读取文件乱码
  12. 一个虚拟社交公司的融资历程
  13. 判断端口是否能用_MSP430单片机的端口解析
  14. Twemproxy安装问题与不支持的操作明细
  15. 三个点在同一个半圆的概率_圆形水池中的四只小鸭子出现在同一个半圆中的概率是?...
  16. 平板电脑可以装python吗_电脑上的应用程序可以装在平板电脑上吗
  17. 计算机d盘无法格式化,d盘无法格式化,小编教你解决D盘无法格式化的方法
  18. iphone配置实用工具出错解决
  19. Docker 安装 CentOS7
  20. 女明星对比潮人HOLD姐的妖艳妆容

热门文章

  1. 创建一个HTML文件
  2. docker之容器数据卷
  3. oracle sql字符拆分字符串函数,oracle-是否有在PL / SQL中拆分字符串的功能?
  4. 【JUC并发编程09】读写锁
  5. 高并发和分布式中的幂等处理
  6. JUnit4单元测试报错问题:method initializationerror not found
  7. Linux备份MySQL xshell_linux shell脚本备份mysql数据库
  8. python开发闹钟_「玩转树莓派」为女朋友打造一款智能语音闹钟
  9. 杭电1180java实现(bfs)
  10. 岛屿类-网格类问题-DFS | 力扣695. 岛屿的最大面积