shell函数学习与交流

一、函数概述

1.1 函数是什么

将命令序列按照格式写在一起。格式指的是函数的固定格式,有两种。

作用:方便重复使用。函数库将函数集中在一起,随时可以传参调用。可以把大的工程分割成若干个小的功能模块,提高代码的可读性。

1.2 函数的格式

1.3 return的作用
return只能写在函数的内部,用来从函数内部获取一个返回值,用来判断是否继续执行下一个脚本。echo $? 不再是判断执行结果,只是一个函数内部的返回码。

在使用return传递返回码的时候,默认0是成功,非0都是失败。

返回码的值可以自定义,返回码的范围0-255。

编写函数是可以指定return返回的值,并根据返回值对接下来的命令如何执行进行判定。

1.4 函数的传参方式

例1:

例2 :


  

1.5 函数变量的作用范围

在函数内部定义了全局变量,外部的传参是不能改变内部的全局变量的

例1:

例2:

例3:

解释:流程:

先定义全局变量a=9

调用函数abc,打印 inside1 $a,此处$a=9

a++ :全局变量a自增1,此处$a=10

local a :此时定义的a为函数内部变量,此处 $a 为空,打印inside2 $a为空

a=8:此处把8赋值给内部变量a,打印inside3 $a,此处$a=8

函数结束,到外部打印 outside $a,此时a为全局变量,$a=10
 

1.6 函数递归

递归:函数调用自己本身的函数

例1:用递归的方式实现阶乘

要注意每一次递归之后,变量$1的值的变化。

在递归中,上一次递归的变量temp的值为下一次递归的$1变量。

例2:递归目录,把/opt/目录下,所有的文件递归出来,如果只是空目录就打印目录名,否则继续打印直到目录里没有文件。

要求将上个例子中递归到的所有的.txt结尾的文件复制到/opt/dec/目录下

1.7 函数库

函数库中只包含定义的函数,由另外一个脚本传入参数来调用我们定义的函数。

在在脚本 diaoyong.sh 中调用函数

拓展练习:要求优化上面函数库的函数,小数和整数都可以运算,小数点后两位

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值