函数的运用

news2024/9/25 3:27:51

函数的运用

  • 一、函数的定义
  • 二、简单函数实验
    • 两个数字的运算:
    • 调用位置变量
    • 函数变量的作用范围
  • 三、函数的递归
    • 阶乘
    • 递归目录
  • 四、函数库

一、函数的定义

shell函数是经常使用的,因为有些命令序列是需要反复调用执行的,将命令序列按格式写在一起,以便可以重复的使用。
shell函数:
使用函数可以避免代码重复
使用函数可以将大的工程分割为若干小的功能模块,代码的可读性更强
格式为:
[function] 函数名(){
命令序列
[return x]
}
[function]是可选的,表示该函数的功能,是可以省略掉的,函数后面加一个(),里面是没有内容,而执行的命令序列是放在{}里面的,[return x]的作用是当命令序列执行完后返回给系统的一个值,该项也是可以省略的。
函数返回值:
return表示退出函数并返回一个退出值,脚本可以用$?变量显示该值
使用原则:

1、函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
2、退出的代码必须是0~255,超出时值将为除以256取余

建议在操作过程中,先给函数的结果赋予一个变量,这样后期还可以对函数进行加工
函数名虽然可以自定义随便设置,但是不要跟系统命令一样,不然无法使用,会有冲突
函数和$?之间不能夹杂别的命令,因为显示的是上一个命令的值,如果之间有其他命令,则会显示其他命令而不是函数的返回值。

二、简单函数实验

两个数字的运算:

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

调用位置变量

在这里插入图片描述
或者
在这里插入图片描述
函数里面的代表的是函数后面脚本之内的位置变量,而下面的$1代表的是脚本之外的位置参数。

函数不管放在哪儿,如果没有定义或者调用,是不会执行
在这里插入图片描述

函数变量的作用范围

函数在shell脚本中仅对当前的shell环境中生效,shell脚本中变量默认全局有效,也就是函数外的命令也可以调用

在这里插入图片描述
使用local命令可以将变量限定在函数内部使用
在这里插入图片描述

三、函数的递归

就是在条件满足的情况下,自己调用自己,知道条件不满足为止。

阶乘

在这里插入图片描述
以输入参数为五为例:
在这里插入图片描述

递归目录

在这里插入图片描述

四、函数库

可以先建立一个脚本文件作为函数库,在使用时就可以直接调用函数库里面的函数。

  • 先建立以一个函数库

在这里插入图片描述

  • 写一个脚本,可以直接调用函数库

在这里插入图片描述

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

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

相关文章

三分钟教你Mac下安装VmWare虚拟机

大数据课程课前环境准备:mac中安装三台linux服务器 一、课前准备 准备一台内存最少8G(建议16G)、cpu i7 4核的电脑 二、课堂主题 安装虚拟化软件VMware准备3台linux虚拟机 三、课堂目标 完成mac下3个虚拟机的安装 四、知识要点 文档说…

洗稿用什么软件-洗稿软件免费

洗稿文章的主要优势 洗稿文章的主要优势在于提高文章的质量和效率。以下是洗稿文章的几个主要优势: 优化结构和语言 洗稿可以删除冗余、无用和重复的内容,同时对文章的结构和语言进行优化,提高文章的可读性和吸引力。这可以使文章更加专业…

探索自然语言处理领域的最新进展与挑战

自然语言处理(NLP)是人工智能领域中最受关注的领域之一,它涉及计算机和人类语言之间的交互。NLP的应用范围非常广泛,包括机器翻译、语音识别、文本分类、情感分析等等。本文将介绍NLP的基本概念和入门知识,以帮助初学者…

一键安装k8s脚本

服务器配置 节点(华为云服务器)配置master 2vCPUs | 4GiB | s6.large.2 CentOS 7.8 64bit node1 2vCPUs | 8GiB | s6.large.4 CentOS 7.8 64bit node2 2vCPUs | 8GiB | s6.large.4 CentOS 7.8 64bit 1.master节点安装脚本:install_k8s_master.sh。 sh文件上传到…

Windows基于Docker安装Elasticsearch和 kibana笔记

Windows基于Docker安装Elasticsearch和 kibana笔记 一、Windows安装Docker1、Windows安装Docker要求2、Docker安装 二、基于Docker安装Elasticsearch1、安装Elasticsearch2、Elasticsearch的XPACK验证2.1、什么是Xpack2.2、Xpack相关安全配置介绍2.2.1、xpack.security.enabled…

系统分析师之系统测试与维护(十六)

目录 一、 测试与评审 1.1 测试类型 1.2 测试阶段 1.3 面向对象的测试 1.4 测试自动化 1.5 软件调试 1.6 软件评审 1.7 验收与确认 二、软件质量管理 2.1 软件过程改进-CMMI 2.2 软件开发环境与工具 三、系统运行与评价 3.1 系统转换计划 3.1.1 遗留系统演化策略…

C++——C/C++内存管理

0.关注博主有更多知识 C知识合集 目录 1.C/C内存分布 2.C内存管理方式 2.1new和delete操作内置类型 2.2new和delete对自定义类型操作 2.3new和delete一定要配套使用 2.4new和malloc对错误的处理方式 3.operator new和operator delete函数 3.1new和delete的实现原理 …

如何实现PLC为主站的开关量自组网无线通信?

本方案是基于Modbus RTU协议下实现的1主多从自组网无线通信形式,主站为S7-1200 PLC,DTD433H作为从站。DTD433H具备输入和输出开关量信号功能,信号传输方向由用户原系统主从设备所实现的功能决定。方案中采用无线开关量信号测控终端DTD433H与欧…

JAVA+SpringBoot框架+SaaS模式云HIS源码

HIS分系统(HIS子系统) 1、医院业务子系统功能 ▶门诊医生站主模块:包括门诊业务、家庭医生、公共卫生、医疗协同等子模块 (1)门诊业务功能简介: ①统计门诊收费明细、用药情况; ②可管理患…

UOS获取ROOT权限

UOS获取ROOT权限 1. 设置里可以看到开发者选项2. 设置里无法看到开发者选项 1. 设置里可以看到开发者选项 这个就按照网上的流程申请就好了 2. 设置里无法看到开发者选项 一般而言就是系统被修改过了,或者定制化了,可以通过下载一个uos的正常镜像来获…

维也纳国际酒店11家门店陆续开业,加速布局中高端酒店市场

2023年,中国旅游业迎来飞速复苏。据弗若斯特沙利文报告预计,2021至2025年,中高端连锁酒店将是整个酒店行业增长最快的细分市场。如何抓住市场复苏和行业增长双重机遇,成为酒店投资者和从业者面临的重要课题。 过去几年里&#xff…

基础语法——笔记一

一、基础语法 编码 源码文件以UTF-8编码,所有字符串都是Unicode字符串标识符 第一个字符必须是字母表中的字母或下划线_ 标识符的其他部分由字母、数字、下划线组成 标识符对大小写敏感python保留字(关键字) 不能用于任何标识符输出python标…

【Redis高级应用】多级缓存

文章目录 什么是多级缓存JVM进程缓存初识Caffeine实现JVM进程缓存需求实现 Lua语法入门初识LuaHelloWorld变量和循环Lua的数据类型声明变量循环 条件控制、函数函数条件控制案例 实现多级缓存安装OpenRestyOpenResty快速入门反向代理流程OpenResty监听请求编写item.lua 请求参数…

ES+Redis+MySQL,这个高可用架构设计太顶了

会员系统是一种基础系统,跟公司所有业务线的下单主流程密切相关。如果会员系统出故障,会导致用户无法下单,影响范围是全公司所有业务线。所以,会员系统必须保证高性能、高可用,提供稳定、高效的基础服务。 一、背景 二…

【最终截稿 | Springer 独立出版 | EI稳定检索】 2023年绿色建筑国际会议(ICoGB 2023)

会议简介 Brief Introduction 2023年绿色建筑国际会议(ICoGB 2023) 会议时间:2023年5月21日-23日 召开地点:瑞典斯德哥尔摩 大会官网:www.icogb.org ICoGB 2023将围绕“绿色建筑”的最新研究领域而展开,为研究人员、工程师、专家学…

进程(一)

进程(一) 2.1 进程的定义、组成、组织方式、特征2.1.1 定义2.1.2 组成2.1.3 组织方式2.1.4 特征2.1.5 本小节总结 2.2 进程的状态与转换2.2.1 进程的状态2.2.3 进程状态的转换2.2.4 本小节总结 2.3 进程控制2.3.1 基本概念2.3.2 进程控制相关的原语2.3.3…

BetaFlight Mark4之“妖怪”声音

BetaFlight Mark4之“妖怪”声音 1. 源由2. 分析3. 数据3.1 配置一3.1.1 “妖怪”声音 黑匣子分析 3.2 配置二3.2.1 仅配置调整(其他不变)3.2.2 配置调整 整体螺丝锁紧 4. 总结5. 附录5.1 Betaflight filter tuning. The easy way to get a perfect fil…

防雷接地网施工综合方案

防雷接地网是一种用于防止雷击的重要设施,其主要作用是将雷电击中建筑物或设备后的电流引入地下,以保护人员和设备的安全。防雷接地网的施工方案是非常重要的,它直接关系到工程质量和安全。 防雷接地网的施工方案需要考虑很多因素&#xff0…

第四十八章 Unity 布局(下)

本章节我们介绍网格布局组 (Grid Layout Group)组件。 我们新建一个“SampleScene5.unity”场景,然后添加Panel面板容器(居中且尺寸为300*300),然后为其添加Grid Layout Group 组件,如下所示 Padding 布局组边缘内的…

第四十九章 Unity UI适配器组件

首先,我们介绍内容大小适配器 (Content Size Fitter)组件。 我们新建一个“SampleScene6.unity”场景,然后添加一个Text UI元素,让其居中显示,并且尺寸设置为50*30。 由于我们设置Text的尺寸在水平方向上面太小,也就是…