shell脚本4函数

news2024/9/28 3:24:20

文章目录

  • shell脚本函数
    • 1 函数概述
    • 2 定义
      • 2.1 形式
      • 2.2 使用原则
      • 2.3 函数传参
      • 2.4 函数变量的作用范围
    • 3 递归
      • 3.1 阶乘
    • 4 函数库
    • 5 实验
      • 5.1 阶乘
      • 5.2 递归目录
      • 5.3 调用函数库

shell脚本函数

1 函数概述

1、将命令序列按格式写在一起

2、可方便重复使用命令序列

  • 使用函数可以避免代码重复

  • 使用函数可以将大的工程分割为若干小的功能模块,代码的可读性更强

2 定义

2.1 形式

function 函数名 {
命令序列
}

或者
函数名( ) {
命令序列
}

函数返回值

return表示退出函数并返回一个退出值,脚本中可以用 $? 变量显示该值

2.2 使用原则

1、函数一结束就取回返回值,因为 $? 变量只返回执行的最后一条命令的退出状态码

2、退出状态码必须是0-255,超出时值将为除以256取余 exit 1

2.3 函数传参

在Shell中,调用函数时可以向其传递参数

在函数体内部,通过 $n 的形式来获取参数的值,

例如,$1表示第一个参数,$2表示第二个参数…即使用位置参数来实现参数传递。

2.4 函数变量的作用范围

函数在shell脚本中仅在当前shell环境中有效

shell脚本中的变量默认全局有效

  • 将变量限定在函数内部使用local命令

3 递归

函数调用自己本身的函数

3.1 阶乘

阶乘指从1乘以2乘以3乘以4一直乘到所要求的数

例如所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘

例如所要求的数是6,则阶乘式是1×2×3×……×6,得到的积是720,720就是6的阶乘。例如所要求的数是n,则阶乘式是1×2×3×……×n,设得到的积是x,x就是n的阶乘

在表达阶乘时,就使用“!”来表示

如h阶乘,就表示为h!

4 函数库

函数库只包含函数的定义,脚本中既包含函数的定义也包括可执行的代码
“!”来表示

如h阶乘,就表示为h!

5 实验

5.1 阶乘

在这里插入图片描述
在这里插入图片描述

5.2 递归目录

在这里插入图片描述

5.3 调用函数库

先创建函数库
在这里插入图片描述
再调用
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/504403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FS4067升压充电8.4V锂电池充电IC电流3A

FS4067升压型5V升压充电8.4V两串锂电池充电IC,工作电压范围于 2.7V 到 6.5V 的 PFM 升压型两节锂电池充电控制集成电路。 FS4067采用恒流和恒压模式对电池进行充电管理,内部集成有基准电压源, 电感电流检测单元,电池电压检测电路和…

【原创】强烈推荐三个可视化模块,绘制的图表真的很酷炫!!

Matplotlib是Python编程语言中最受欢迎的绘图库之一。它提供了一套面向对象的API,可将图表嵌入到使用通用GUI工具包(如Tkinter、wxPython、Qt或GTK)的应用程序中。Matplotlib还常用于创建静态、动画和交互式的Python数据可视化。它能够绘制各…

【Unity】在Unity下使用websocket的一些经验

首先,先上大家都知道的简介,这一版是我认为比较清晰的。。。虽然在度娘的教导和知乎的教导下,总算认识了websocket,但这个过程比较艰辛,给大家发出来看一下: --------------------------------------------…

精准测试之过程与实践 | 京东云技术团队

作者:京东工业 宛煜昕 一、怎样的技术 •百度百科: 精准测试是一套计算机测试辅助分析系统。 精准测试的核心组件包含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统…

苹果(ios)家庭APP广告推送,照片,相册,日历消息推送,【iMessage苹果推】,【苹果家庭推群发】,【imessage相册推送】

解决方案 若是你完全担任苹果的这个默许功效,那就不必要去编削任何代码。 如果,你原本就比较细心,曾经配置了modalPresentationStyle的值,那你也不会有这个影响。 对于想要找回本来默认交互的同学,直接设置以下便可&am…

携手共赢 HashData亮相华为合作伙伴大会

5月8日-9日,以“因聚而生 众志有为”为主题的“华为中国合作伙伴大会2023”在深圳国际会展中心举办。 HashData作为国内云原生数据仓库的代表企业,也是华为重要的生态合作伙伴。在本次大会上,HashData展示了云数仓领域最新前沿技术以及联合…

Java经典笔试题—day04

Java经典笔试题—day04 🔎选择题🔎编程题🥝计算糖果🥝进制转换 🔎结尾 🔎选择题 (1)下列与队列结构有关联的是() A. 函数的递归调用 B. 数组元素的引用 C. 多重循环的执行 D. 先到…

Windows系统运行速度优化(系统内存扩充)!

之前有几篇文章,讲述了一些关于提升Windows系统运行速度的方法。链接如下: 如何让Windows系统10秒开机? 电脑运行卡顿怎么办?一招让Windows系统运行流畅 Windows系统重新安装后必须要做的优化 这里还有一个Windows系统的优化方法…

技术领先、“忠”于业务,用友走出多维数据库的价值之路

本文转自科技商业 作者 于洪涛 对于当今的企业而言,精细化管理,已经成为发展之源,甚至是生存之本。 尤其是随着数字化和智能化转型的推进,在企业经营管理过程中,数据正在日益发挥更为关键的要素作用。 相比过去&…

【Linux】Shell脚本之函数的操作+实战详解(建议收藏⭐)

🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录 shell脚本函数设置函数的意义函数的基…

物联网|蓝牙4.0BLE协议栈简介|IAR集成开发环境简介|IAR各版本下载链接|物联网之蓝牙4.0 BLE基础-学习笔记(2)

文章目录 129-142暂停,待续3、蓝牙4.0BLE协议栈简介4、IAR集成开发环境简介Tips: BLE协议结构图介绍Tips IAR各版本下载链接 129-142暂停,待续 3、蓝牙4.0BLE协议栈简介 问题: 1、什么是LE协议栈?BLE协识栈与BLE协议的关系? 协议&#xff…

数据结构与算法(Java版) | 队列的应用场景和介绍

队列的一个应用场景 给大家介绍完稀疏数组这种数据结构之后,接下来我再来给大家介绍另外一种数据结构,即队列。 队列,听其名而知其义,相信大家应该都在现实生活中见过,比如在火车站排队买票,或者在麦当劳…

轻NAS搭建 - 使用微力同步搭建私人云盘,无需公网IP也能远程访问

文章目录 1.前言2. 微力同步网站搭建2.1 微力同步下载和安装2.2 微力同步网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 私有云盘作为云存储概念的延伸,虽然谈不上多么新颖,但是其…

图神经网络:在Cora数据集上动手实现图神经网络

文章说明: 1)参考资料:PYG官方文档。超链。 2)博主水平不高,如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook。超链。提取码8888。 文章目录 代码实操1:GCN的复杂实现代码实操2:GCN的简单实现…

IntelliJ Platform-Plugins-获取方法相关信息(PsiElement/PsiMethodImpl)

PsiElement接口是文件中光标所在的那个字段,或者光标所在的那个方法的抽象,例如下图中PsiElement就是public String getName(),它的实现类是PsiMethodImpl 下面的代码会演示:如果光标在方法上,就打印方法名字&#x…

「Cpolar」内网穿透实现在外远程连接MongoDB数据库【端口映射】

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言A…

第二十四章 Unity 纹理贴图

通常情况下,3D网格模型只能展示游戏对象的几何形状,而表面的细节则纹理贴图提供。纹理贴图通过UV坐标“贴附”在模型的表面。当然,这个过程不需要我们在Unity中完成,而是在建模软件中完成的。通常情况下,我们通过3ds m…

鸿蒙Hi3861学习九-Huawei LiteOS-M(互斥锁)

一、简介 互斥锁又被称为互斥型信号量,是一种特殊的二值信号量,用于实现对共享资源的独占式处理。 任意时刻互斥锁的状态只有两种:开锁或闭锁。 当有任务占用公共资源时,互斥锁处于闭锁状态,这个任务获得该互斥锁的使用…

C++系列六:一文打尽C++运算符

C运算符 1. 算术运算符2. 关系运算符3. 逻辑运算符4. 按位运算符5. 取地址运算符6. 取内容运算符7. 成员选择符8. 作用域运算符9. 总结 1. 算术运算符 算术运算符用于执行基本数学运算,例如加减乘除和取模等操作。下表列出了C中支持的算术运算符: 运算…

Oracle 19C 单机环境升级RU(19.3升级至19.12)

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…