在shell脚本中要获取一个函数的返回值,有两个方法:


#! /bin/sh
function test()
{
        echo "test here"
        return 100
}
DD=`test`
#echo excute over
echo "return: $?"
echo "DD: $DD"


return: 100
DD: test here

如果 把#echo excute over注释去掉,执行结果是

excute over
return: 0
DD: test here

也就是说:$?是接收上一条函数的执行结果,在例一中,$?接收test函数的执行结果,执行结果其实就是其返回值,就是return 传出来的数值(return只能是数字,不能是字符串之类的),如果函数中没有显式调用return返回出来状态,那么系统会使用函数中最后一条shell指令的执行结果作为返回值,如果函数test()最后一条指令调用其他函数,如:test1(),那么test的返回值就是test1的返回值。

DD是作为一个变量接收函数的标准输出,比如echo产生出来的信息,不包括报错之类的信息,如上如果函数test中调用test1,那么test和test1中的标准输出都会赋值给变量DD.

注意:DD=`test` , ` `符号不是单引号‘’,而是ESC下面的那个符号,该句话的意思是执行函数test结果赋值给DD,如果是单引号的话这句话是把字符串“test”赋值给变量DD,注意,这句话的执行结果不是赋值是否成功,而是函数的执行状态

总结:所以,可以总结一下函数返回值获取的方法:

1)用变量接收函数返回值,函数用echo等标准输出将要返回的东西打印出来。

2)用$?来接收函数的执行状态,但是$?要紧跟在函数调用处的后面。

shell 获取函数返回值相关推荐

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

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

  2. shell获取函数返回值

    1.使用return返回结果 #/bin/bash function test(){return "123" } test echo $? 注意: 1.必须使用$?获取函数返回值, ...

  3. Shell 获取函数返回值(函数返回值)

    返回值整形 #!/bin/shdef_one_install(){if [ -d "/opt/aaa" ];thenreturn 1elsereturn 0fi }main() { ...

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

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

  5. Shell函数(函数定义、函数变量、函数调用、函数传参、函数返回值、获取函数返回值)

    分享知识 传递快乐 1.函数定义 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.Shell 函数定义的语法格式如下: [function] funname [()]{函 ...

  6. shell脚本获取函数返回值

    方式1 原理:return返回的值可以通过$?得到. 缺点:return只能返回整数 #!/bin/sh function test() {return 100 } test echo $? 方式2 ...

  7. linux函数没有返回值导致溢出,Shell中函数返回值超出问题

    1.前言 快半年没有写博客了,荒废了很久,工作中的杂事太多,自己越来越懒了.为了鞭策自己成长,还是要坚持写写博客,记录自己的成长. 2.shell函数介绍 语法: [ function ] funna ...

  8. shell中函数返回值

    1.前言 快半年没有写博客了,荒废了很久,工作中的杂事太多,自己越来越懒了.为了鞭策自己成长,还是要坚持写写博客,记录自己的成长. 2.shell函数介绍 语法: [ function ] funna ...

  9. shell调用函数并获取函数返回值

    函数 func1() {local tmp=1000echo $tmpreturn $? }调用函数 mySize=`func1` echo $mySize

最新文章

  1. 不想被问年终奖?2018年春节自救攻略来了!
  2. goland 调试运行路径
  3. 损害计算机系统,哪些情况下容易导致电脑系统崩溃损坏?
  4. Struts1.x的使用
  5. MySQL索引分析和优化(转)
  6. boost::spirit::classic相关的测试程序
  7. php微信小程序多图上传,tp5实现微信小程序多图片上传到服务器功能
  8. 详细解析Java中抽象类和接口的区别(很容易理解错)
  9. 函数型F#语言很值得学习
  10. 给 console 添加颜色
  11. [转]Kaldi语音识别
  12. 翻译连载 | 附录 C:函数式编程函数库-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
  13. Python——批量发送邮件(持续更新)
  14. No service of type FactoryLoggingManagerInternal available in ProjectScopeServices.
  15. 一起搭建私有物联网云平台讲解
  16. 空间换时间小例子(2)
  17. 程序员日常照片大合集!快来大饱眼福!
  18. skipping incompatible xxxx.a when searching for -lxxx问题的解决
  19. 足球大数据分析大小球的技巧与实例附软件
  20. 求一份网页设计结课大作业,要求用到html,css,javascript,的知识

热门文章

  1. 计算机应用程序存储空间不足,电脑提示内存不足该怎么办呢
  2. 计算机视觉(五)图像检索
  3. safari提取网页的视频和音频
  4. Tableau学习总结
  5. ESP32 开发笔记(三)源码示例 3_LEDC_PWM 使用LEDC实现LED呼吸灯
  6. 复平面上gamma函数_Gamma函数深入理解
  7. 关于CLOS架构的举例 网络级 设备级 FATTREE网络 网络级CLOS 以及CLOS涉及的调度算法RR...
  8. 第十二篇 GoogLeNet——网络实战
  9. 为什么我把D盘清空了,然后下载战地5到D盘的时候显示可用空间为0?
  10. mysql 取消缺省值_MySQL中各参数的默认值你认为有哪些是不合理的?