42、shell脚本详解(五)---函数的格式、传参、变量、递归、函数库

一、shell函数定义

​ 将命令序列按格式写在一起,可方便重复使用命令序列

二、格式

1、格式一

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AEymMUjS-1646408613229)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644825337012.png)]

2、格式二

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zNKElLEr-1646408613231)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644825378075.png)]

三、函数返回值

  • return表示退出函数并返回一个退出值,脚本中可以用 $ ? 变量显示该值
  • 使用原则:
  • 1、函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
  • 2、退出状态码必须是0~255,超出时值将为除以256取余

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TyqOfDW3-1646408613232)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644825711705.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SgTUoVUX-1646408613232)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644825727383.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DjwPF2om-1646408613232)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644825794172.png)]

四、函数传参

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kd1ukV7r-1646408613233)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644826062089.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vWxewxPf-1646408613233)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644826090580.png)]

五、函数变量的作用范围

  • 函数在Shell脚本中仅在当前Shell环境中有效
  • Shell脚本中变量默认全局有效
  • 将变量限定在函数内部使用local命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vs91Yeu0-1646408613233)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644826416779.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gj8VmYig-1646408613234)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644827472261.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wCsgntVj-1646408613234)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644827483353.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q8jjEolM-1646408613234)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644827494139.png)]

六、递归

1、阶乘

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pWjTrBvt-1646408613234)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644827734693.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BlyvkDSG-1646408613235)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644828897517.png)]

2、递归查目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oLsjH7JD-1646408613235)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644830223827.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OiPJMAX9-1646408613235)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644830250812.png)]

七、创建函数库

把常用的函数放入一个单独的库脚本中,方便脚本在使用时,可直接调用这个库中的函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GukO0QJh-1646408613236)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644830385314.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HSUypOq9-1646408613236)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644830485640.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ELBLBLtR-1646408613236)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644849905950.png)]

g-HSUypOq9-1646408613236)]

[外链图片转存中…(img-ELBLBLtR-1646408613236)]

posted @ 2022-03-07 18:09  叕叕666  阅读(76)  评论(0)    收藏  举报