linux shell返回值方式及示例

版权声明:本文为博主转载文章,码字不易,转载请标明出处。 https://blog.csdn.net/yue530tomtom/article/details/76094008

概述

  Shell函数返回值,常用的两种方式:echo和return

echo

据man手册描述:echo是一个输出参数,有空格分割,会产生一个新行。返回永远是0。

echo一般起到一个提示的作用。在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的。

在shell中子进程会继承父进程的标准输出,因此,子进程的输出也就直接反应到父进程。所以函数的返回值通过输出到标准输出是一个非常安全的返回方式。

使用echo返回的示例

[root@wmstianjin16172 ~]# cat echoTestFun.sh 
#!/bin/bash  
function echoTestFun()  
{  
    if [ -z $1 ] 
    then  
        echo "0"  
    else  
        echo "$@"  
    fi  
}
echo "Agrs not null start:"
echoTestFun $@  
echo "Agrs not null end"
echo "Agrs  null start:"
echoTestFun  
echo "Agrs  null end"

 

 

 

执行

[root@wmstianjin16172 ~]# ./echoTestFun.sh 1 hh 3
Agrs not null start:
1 hh 3
Agrs not null end
Agrs  null start:
0
Agrs  null end

 

 

 

return

shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回,BUT return只能用来返回整数值;且和c的区别是返回为正确,其他的值为错误。

使用return返回的示例

[root@wmstianjin16172 ~]# cat returnTestFun.sh 
#!/bin/bash  
function returnTestFun()  
{  
    if [ -z $1 ]
    then  
        return 0  
    else  
        return 1  
    fi  
}
echo "Agrs not null start:"
returnTestFun $@  
echo $?
echo "Agrs not null end"
echo "Agrs  null start:"
returnTestFun
echo $?
echo "Agrs  null end"

 

 

 

执行

[root@wmstianjin16172 ~]# ./returnTestFun.sh hello world
Agrs not null start:
1
Agrs not null end
Agrs  null start:
0
Agrs  null end

 

 

若返回不是整数的返回值,将会得到一个错误 
如把上例中的return 1改为return $1,使用同样的参数运行将得到提示:

./returnTestFun.sh: line 8: return: hello: numeric argument required

版权声明:本文为博主转载文章,码字不易,转载请标明出处。 https://blog.csdn.net/yue530tomtom/article/details/76094008

全部评论

相关推荐

03-17 23:54
黑龙江大学 Java
来个白菜也好啊qaq:可以的,大厂有的缺打手
点赞 评论 收藏
分享
03-19 18:27
已编辑
门头沟学院 C++
26学院本太难了,很多公司机筛就给我刷了。机会都难拿到如果是简历存在问题也欢迎拷打————————————————————分割线——————————————————————2026.3.4更新:发完贴之后,时不时投递又收到了不少的笔试/面试邀请。主要是之前投递简历出去之后基本上都是沉默状态,年后好转了不少timeline:2026.01.21 文远知行笔试,半年多没刷算法题 ->挂 (后续HR说春招可以重新安排笔试)2026.2.4     小鹏汇天 技术一面,第二周收到结果 ->挂2026.2.12   大众Cariad代招 技术二面 ->Offer2026.2.28   多益网络技术面试,由于风评太差,一直在犹豫要不要接面试 ->推迟-----------分割线-----------2026.3 月前的某一天,临时去电网报名了二批计算机岗位的笔试2026.3.6 从上家公司实习离职,氛围最好的一家公司,leader 说可以帮忙转正,但是流程太长,而且我们部门据说只有一个 hc,更想要研究生,我很有可能是会被签外包公司在这里干活,就离职了。2026.3.9 入职新公司,大众Cariad 以外部公司的身份进组,项目组签了三年,后续三年应该都可以在这里呆,不知道有没有希望原地跳槽。2026.3.10 电网考试居然说我通过资格审查了,短信约我去参加资格审查,请假一天,买了 12 号晚上的机票回成都2026.3.15 参加国家电网三新计算机类的笔试2026.3.17 电网出成绩了,感觉很低。觉得已经🈚️了2026.3.18 收到电网面试通知,通知 3.22-3.25 这个时间去面试,我的岗位只招 1 个人。据说面试只有 2-3 人,不知道能不能成功
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务