shell编程之函数浅析

最近接触了shell编程,遇到shell编程的函数问题,经过一番探索,我总结了一点经验记录在这里,供有心人察之。


1.函数定义
shell编程里的函数定义有两种方式:
第一种是function func(){statements;}
第二种是func(){statements;}
这时你会发现函数定义的括号中没有参数,有一点编程经验的小伙伴都知道,函数在定义的时候一般都是可以带参数的,如果没有参数,那么函数的功能会大打折扣,那么shell里的函数是怎么解决这一问题的呢?

2.函数的参数问题
首先介绍一下shell函数的一些参数变量和内部变量(调用脚本程序时如果带有参数,对应的参数和额外产生的一 些变量。)
1)$#:传递到脚本程序的参数个数
2)$0 :脚本程序的名字
3)$1, $2, …: 脚本程序的参数
4)$*: 一个全体参数组成的清单,它是一个独立的变量, 各个参数之 间用环境变量IFS中的第一个字符分隔 开
5)$@ :是$*的一种变体,它不使用IFS环境变量。
从3)我们可以发现shell函数通过使用$n(n为正整数)来表示参数,举个例子:
这里写图片描述

这里写图片描述

这里我定义了一个名为say的函数,功能为打印第一个和第二个参数的值,由此可以看出$1表示第一个参数,即“hello”,$2表示第二个参数,即“hi”,这就是shell函数传参数的方法啦

3.函数的返回值
现在shell函数有了函数名和参数,下面就来讲讲返回值。
1)通过return和$?来获取返回值
这里写图片描述

这里写图片描述

上面这个例子是通过return返回一个值,用$?来接收。但是return只能返回整数值,而不能返回其他类型的值,如下所示:
这里写图片描述

这里写图片描述
那么如果我们想达到类似于public String t1(){return “hello”}的效果怎么办呢?请看第2种返回值的方式。

2)通过echo来返回,即通过标准输出来返回。笔者认为这应该是shell函数最通用的返回值的方式。请看:
这里写图片描述

这里写图片描述

你看,只要把return改成echo就可以了,习惯了用return来返回函数值的小伙伴可要注意咯~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值