shell 获取函数返回值
在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 获取函数返回值相关推荐
- linux里返回状态命令行,Shell $?获取函数返回值或者上一个命令的退出状态
$? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值. 所谓退出状态,就是上一个命令执行后的返回结果.退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1, ...
- shell获取函数返回值
1.使用return返回结果 #/bin/bash function test(){return "123" } test echo $? 注意: 1.必须使用$?获取函数返回值, ...
- Shell 获取函数返回值(函数返回值)
返回值整形 #!/bin/shdef_one_install(){if [ -d "/opt/aaa" ];thenreturn 1elsereturn 0fi }main() { ...
- linux获取命令的返回值,Shell $?:获取函数返回值或者上一个命令的退出状态
$?是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值. 所谓退出状态,就是上一个命令执行后的返回结果.退出状态是一个数字,一般情况下,大部分命令执行成功会返回0,失败返回1,这和C ...
- Shell函数(函数定义、函数变量、函数调用、函数传参、函数返回值、获取函数返回值)
分享知识 传递快乐 1.函数定义 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.Shell 函数定义的语法格式如下: [function] funname [()]{函 ...
- shell脚本获取函数返回值
方式1 原理:return返回的值可以通过$?得到. 缺点:return只能返回整数 #!/bin/sh function test() {return 100 } test echo $? 方式2 ...
- linux函数没有返回值导致溢出,Shell中函数返回值超出问题
1.前言 快半年没有写博客了,荒废了很久,工作中的杂事太多,自己越来越懒了.为了鞭策自己成长,还是要坚持写写博客,记录自己的成长. 2.shell函数介绍 语法: [ function ] funna ...
- shell中函数返回值
1.前言 快半年没有写博客了,荒废了很久,工作中的杂事太多,自己越来越懒了.为了鞭策自己成长,还是要坚持写写博客,记录自己的成长. 2.shell函数介绍 语法: [ function ] funna ...
- shell调用函数并获取函数返回值
函数 func1() {local tmp=1000echo $tmpreturn $? }调用函数 mySize=`func1` echo $mySize
最新文章
- zookeeper分布式锁的原理
- 作者:聂敏,男,电子科技大学教育大数据研究所博士生。
- 【5.0】对象生命周期及crud操作
- c++之string类详解
- SQL server中如何使用return,break和continue
- 阿里云HPC--人工智能加速利器
- 群晖让usb打印机变成网络打印机
- The repository 'http://ppa.launchpad.net/octave/stable/ubuntu bionic Release' does not have a Releas
- 安卓开发旅之百度导航
- c++ Simpson积分
- Leco题目:回文数
- Bigben vlc sdl 播放视频可随窗口改变大小
- 周金涛:繁荣的起点并非沸腾的年代,或将在2020年出现首次证券市场大繁荣
- 软件开发的43款可视化工具
- 鸿蒙系统车联网,华为鸿蒙上车,关于车联网的想象有多少?
- 《HTML5+CSS3网页布局和样式精粹》.(张亚飞).[PDF]ckook
- 西游记中孙悟空的蜕变
- 可编辑的el-table表格
- 一秒获取朋友位置(火绒抓取ip)
- element ui中穿梭框等列表文字显示过长隐藏问题处理