Linux之Shell编程(11)--Shell函数实例演示

一.Shell函数介绍

前言
前面讲了Shell中的一些基础内容,还没有看过的同学可以看我往期的文章,因为那些内容是Shell函数的前提。另外,Shell函数我会着重讲解,会有很多系列,也会有很多实例演示,让大家能够更好地理解Shell函数以及和其它语言的函数的一些异同点。

言归正传,想要理解一种语言的函数,我们要先知道这些函数的命名规则,那么Shell函数的命名规则是啥样的呢?

Shell函数命名规则:

简化

函数名(){
    函数体
}

或者

推荐规范

function 函数名(){
	命令序列
}

省略小括号

function 函数名{
	命令序列
}

说明:
相同点:
和其它语言类似,Shell函数的定义也是由函数名,参数列表,方法体,以及函数返回值组成。
不同点:
1.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令的运行结果作为返回值。 return后跟数值n(0-255)。
2.Shell 函数的变量不需要在变量前定义变量类型,

1.这点和其它语言有点不同,在C++或Java中,除void函数类型的函数外,其它类型的函数如果不加return 会直接报错。
2.不加变量类型和python语言很类似,但是在C++或Java语言中不加变量类型会直接报错。

实例演示
在这里插入图片描述

#!/bin/bash
function Fun(){
    echo "first shell!"
    return `expr 1 + 1`
}

Fun
echo $?

结果:
在这里插入图片描述

说明:
1./bin/sh 不支持 function 关键字(bash支持function关键字),如果要使用function关键字必须在bash下使用,若用sh,那么就去掉function关键字也能运行。
2.$?:获取函数返回值或者上一个命令的退出状态(退出状态0为正常,非0为不正常)。
在这里插入图片描述
结果:
在这里插入图片描述

二.函数的变量(重要)

和其它语言不同的是,函数传参调用语法为:
函数名 参数1 参数2 …

注意:
1.函数名不带括号且参数也不是写在括号内。
2.多个参数之间以空格分开。
3.Shell 函数在定义时不能指明参数,但是在调用时却可以传递参数,并且传递什么参数就接收什么参数。
4.在函数体内部,函数中的变量均为全局变量,无局部变量,若想使用局部变量需要在变量前加上 local关键字,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数…。

实例演示:
在这里插入图片描述

#!/bin/sh
 Fun(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"

}


Fun 0 1 2 3 4 5 6 7 8 9 10 11
echo $?

结果:
在这里插入图片描述

注意:
$10 不能获取第十个参数,获取第十个参数需要 $ {10} 。当n>=10时,需要使用${n}来获取参数,虽然这里显示对的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值