linux shell 系统函数,【Linux 系统编程】shell 脚本基础学习之函数(五)

前言

Linux shell脚本基础学习我们这里就差不多讲完了,函数相信大家都不陌生吧,直接入正题吧~

正文

shell 函数

Linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。

shell 中函数的定义格式如下:

function_name () {

list of commands

[ return value ]

}

说明:

1、函数名前面也可以加上关键字function;

2、函数的返回值,可以显示加:return 返回,如果不加,将以最后一条命令的运行结果作为返回值。

shell 函数返回值只能是整数,一般用来表示函数执行是否政工,0表示成功,其他则表示失败。

如果要让函数返回字符串,那么可以先定义一个变量,用来接收函数的计算结果,脚本在访问这个变量来获得函数的返回值。

比如:

1 #!/bin/bash

2 Hello () {

3 echo "My name is xu hao"

4 }

5

6 #调用上面的函数

7 Hello

运行结果:

root@iZ28t5k4ny4Z:/usr/xiho/shell# ./06.sh

My name is xu hao

调用函数只需要给出函数名,不需要加括号。

再来看一个带有return语句的函数:

在上面例子后面添加:

funWithReturn() {

11 echo "这个函数功能是得到两个数字的和"

12 echo -n "请输入第一个数字"

13 read aNum;

14 echo -n "请输入第二个数字"

15 read bNum;

16 echo "这两个数分别是 $aNum 和 $bNum !"

17 return $(($aNum+$bNum))

18 }

19

20 #调用funWithReturn这个函数

21 funWithReturn

22

23 ret=$?

24 echo "The sun of two numbers is $ret !"

运行结果:

root@iZ28t5k4ny4Z:/usr/xiho/shell# ./06.sh

My name is xu hao

这个函数功能是得到两个数字的和

请输入第一个数字56

请输入第二个数字23

这两个数分别是 56 和 23 !

The sun of two numbers is 79 !

$?最后运行的命令的结束代码(返回值),这个在后面会总结的。

函数参数

在shell 中,调用函数时可以向其传递参数,在函数体内部,通过$n 的形式来获取参数,比如,$1表示第一个参数,$2表示第二个参数

再来看一个带参数的函数例子:

28 funWithParam() {

29 echo "第一个param为 $1"

30 echo "第二个param为 $2"

31 echo "第十个param为 $10"

32 echo "第十个param为 ${10}"

33 echo "参数总共有 $#"

34 echo "作为一个字符串输出所有参数 $* !"

35

36 }

37 #调用函数并传递参数

38 funWithParam 1 2 3 4 5 6 23 45 22 9 25

运行脚本输出的结果为:

f51ccf7c186f60eeb6a767dea103acbc.png

在这里注意下,$10不能获取第10个参数,当n>=10时,需要${n}来获取参数。

另外:在补充几个特殊字符来处理的参数

$# 传递到脚本的参数个数

$* 以一个单字符串显示所有向脚本传递的参数

$$ 脚本运行的当前进程ID号

$! 后台运行的最后一个进程的ID号

$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。

$- 显示Shell使用的当前选项,与set命令功能相同。

$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

一下午整理这两篇博客,算是把Linux shell 脚本的基础的理论学习讲完了,更多的细节只有等我们遇到了在慢慢琢磨吧!吃饭~

更多相关系列文章传送门:

【CSDN】Linux Shell脚本基础学习系列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值