当前位置:网站首页>shell函数内如何调用另一个函数
shell函数内如何调用另一个函数
2022-08-04 17:13:00 【亿速云】
shell函数内如何调用另一个函数
今天小编给大家分享一下shell函数内如何调用另一个函数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
一、函数B调用不带返回值的函数A
新建文件,命名为 test.sh,添加如下代码:
#!/bin/bash# 即将被调用的函数Afunction A(){ a="aaa" echo $a}# 函数B,直接调用Afunction B(){ A echo "bbb"}B命令行中通过sh test.sh执行结果:

二、函数B调用带返回值的函数A,并接收函数A的返回值进行输出
如果函数A有return,是不是在上面例子的基础上,把A函数加多一个return就可以了呢?那么我们来试一下,代码如下:
#!/bin/bash# 即将被调用的函数Afunction A(){ a=10 return $a}# 函数Bfunction B(){ a=`A` # 注意,这里不能直接写成a=A echo $a}B命令行执行sh test.sh查看执行结果:

等等,为什么结果输出为空呢?原来shell中调用带返回值的函数之后,返回值自动保存在$?中,所以将函数B改成如下即可:
#!/bin/bash# 即将被调用的函数Afunction A(){ a=10 return $a}# 函数Bfunction B(){ a=`A` echo $? # 注意:这里要用英文的?,不能用中文的?}B查看执行结果:

然而,题主遇到返回结果并不是期望结果的情况。代码如下:
#!/bin/bash# 即将被调用的函数Afunction A(){ a="aaa" return $a}# 函数Bfunction B(){ a=`A` echo $? echo "bbb"}B命令行执行sh test.sh查看结果:

这是什么意思呢?为什么是255,而不是期望的结果“aaa”?原因是shell中用return的话,return的值只能为整形,其它非整形的,如想要直接return是获取不到的。
那么,该如何解决该问题呢?代码如下:
#!/bin/bash# 即将被调用的函数Afunction A(){ a="aaa" echo $a}# 函数Bfunction B(){ a=`A` echo $a echo "bbb"}B查看结果:

以上就是“shell函数内如何调用另一个函数”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
边栏推荐
- 力拓信创生态,博睿数据多款产品获得东方通与达梦数据库产品兼容互认证明
- 基于clipboard.js对复制组件的封装
- WEB 渗透之XXE&XML
- 学习探索-网站中引入百度统计
- The second step through MySQL in four steps: MySQL index learning
- localhost,127.0.0.1,本机IP
- C. LIS or Reverse LIS?
- R语言计算时间序列数据的逐次差分(successive differences):使用diff函数计算时间序列数据的逐次差分值
- JSP 标准标签库(JSTL)[通俗易懂]
- WPF 光标初始化的时候 temp 文件夹满了无法创建
猜你喜欢
随机推荐
【LeetCode每日一题】——374.猜数字大小
餐饮供应链管理系统
【LeetCode每日一题】——540.有序数组中的单一元素
北京海淀6家必胜客被暂停外卖订餐 存在食品安全问题
软件测试高频面试题真实分享/网上银行转账是怎么测的,设计一下测试用例。
泰坦尼克号沉船数据之美——起于悲剧,止于浪漫
【商家联盟】云平台—异业联盟,打造线上线下商业相结合的系统
Boost library study notes (1) Installation and configuration
(一)、线性表的顺序存储结构链式存储结构
重新审视分布式系统:永远不会有完美的一致性方案……
消灭异步回调,还得是async-await
R语言使用cov函数计算矩阵或者dataframe数据变量之间的协方差、cor函数计算相关性、cor函数通过method参数指定相关性、相关性计算方法Pearson,Spearman, Kendall
SAP ABAP SteammPunk 蒸汽朋克的最新进展 - 嵌入式蒸汽朋克
SRM Supplier Collaborative Management System Function Introduction
ES中同时使用should和must导致只有must生效解决方案
机器学习(十七):网格搜索(Grid Search)和SVM
nyist 301 递推求值(矩阵快速幂)
yarn detailed introductory tutorial
Copycat CNN: Stealing Knowledge by Persuading Confession with Random Non-Labeled Data阅读心得
罗振宇折戟创业板/ B站回应HR称用户是Loser/ 腾讯罗技年内合推云游戏掌机...今日更多新鲜事在此...








