当前位置:网站首页>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函数内如何调用另一个函数”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
边栏推荐
- AtCoder Beginner Contest 262 部分题解
- 为什么买域名必须实名认证?这样做什么原因?
- 8月5日,麒麟信安邀您相约鲲鹏开发者创享日·长沙站!
- 太一集团全资收购火币旗下社交产品火信
- 【 Gazebo introductory tutorial] speak the second model library into robot modeling and visualization (editor) model
- 机器学习(十三):支持向量机(SVM)
- LeetCode 0168. Excel表列名称
- 麒麟信安石勇博士荣获openEuler社区年度开源贡献之星
- 服装店如何利用好积分?
- 使用Redis做某个时间段在线数统计
猜你喜欢

Unity Apple登录接入

win11如何退出安全模式

Clearance sword refers to Offer——The sword refers to Offer II 010. and the sub-array of k

谷歌开发者社区推荐:《Jetpack Compose 从入门到实战》新书上架,带你踏上 Compose 开发之旅~

What does the product system of a digital financial enterprise look like?

西西成语接龙小助手

yarn detailed introductory tutorial
软件测试高频面试题真实分享/网上银行转账是怎么测的,设计一下测试用例。

全世界国家和地区国家顶级域名对照表

乐享购(分享购)的模式:优势、亮点、收益
随机推荐
R语言dplyr包group_by函数和summarise_at函数计算dataframe计算不同分组的计数个数和均值、使用%>%符号将多个函数串起来
shell脚本详解 --------循环语句之for循环
机器人示教编程与离线编程的优缺点对比
机器学习(十三):支持向量机(SVM)
nyist 301 递推求值(矩阵快速幂)
R语言ggpubr包的ggtexttable函数可视化表格数据(直接绘制表格图或者在图像中添加表格数据)、使用ggarrange函数将表格数据和可视化图像组合起来(表格数据在可视化图像下方)
shell脚本详解-------循环语句wuile循环和until循环
餐饮供应链管理系统
88.(cesium之家)cesium聚合图
NLP未来,路在何方?从学术前沿和业界热点谈起
使用Redis做某个时间段在线数统计
【论文阅读】Decision Transformer: Reinforcement Learning via Sequence Modeling
在VMD上可视化hdf5格式的分子轨迹文件
hi, 请问下这是什么问题, 我看官网的example就是mysql的, 咋提示不支持?
Fork/Join框架
【LeetCode每日一题】——374.猜数字大小
不需要服务器,教你仅用30行代码搞定实时健康码识别
两个对象相同数据赋值
基于clipboard.js对复制组件的封装
域名哪家便宜?怎么买便宜域名?