shell脚本 函数

函数

shell的函数

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

for i in {}

do

命令序列

done

if [ ]

then

命令序列

fi

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

函数的格式

fuction abc{

}

abc ( ) {

}

return的作用

return只能写在函数的内部,目的是从函数的内部获取一个返回值,用来判断是否继续执行下一个脚本。echo $? 这个时候不再是判断执行结果,只是一个内部的返回值。在用rerturn传返回码的时候,默认0是成功,非0都是失败。返回码可以自定义,范围0-255.

函数的传参方式以及函数变量的作用范围:

sum() {

sum=$(($1+$2))

echo $num

}

read -p "请输入第一个数" num1

read -p "请输入第二个数" num2

sum $num1 $num2

函数递归,

函数调用自己本身的函数

阶乘 4的阶乘 4 3 2 1=24 1=21 5 5 4 3 2 1 =120

用函数递归的方式来实现阶乘

jiecheng () {
if [ $1 -eq 1 ]

then

echo 1

else

local temp=$(($1-1))

local result=$(($jiecheng $temp))

echo "$(($1*$result))"

fi

}

read -p "输入一个数":num

result1=jiecheng $num

echo $result

                        
 

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

jiafa(){

result=$(($1+$2))

echo $result

}

jianfa ( ) {

result=$(($1-$2))

echo $result

}

chengfa ( ) {

result=$(($1*$2))

echo $result

}

调用函数库

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

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

相关文章

Spring延迟Bean的初始化

在Spring中,ApplicationContext默认会在容器初始化时创建并配置所有定义为单例(Singleton)的Bean。这有助于在应用程序启动时立即发现任何配置错误或依赖问题。然而,在某些情况下,你可能希望延迟Bean的初始化&#xff…

pause 容器

概述 通过容器资源隔离的原理中知道容器之间是通过 NameSpace 和 cgroups 隔离开的,但是 pod 中的网络和存储却是共享的. kubernetes 为了解决网络共享问题,引入了 pause 容器,又叫Infra容器,在kubelet的配置中有KUBELET_POD_IN…

Vim和Nano简介

**Vim**: - Vim 是一个文本编辑器,它是 Vi 编辑器的一个改进版本,Vi 编辑器最初由 Bill Joy 在1976年为 BSD Unix 开发。 - Vim 由 Bram Moolenaar 开发,其第一个版本在1991年发布。Vim 的设计理念是“持继改进”,它的…

SpringMVC系列五: SpringMVC映射请求数据

SpringMVC映射请求数据 💞获取参数值说明应用实例 💞获取http请求消息头💞获取JavaBean对象使用场景说明应用实例注意事项和细节 💞获取servlet api说明应用实例注意事项和细节 上一讲, 我们学习的是SpringMVC系列四: Rest-优雅的…

VUE 项目用 Docker+Nginx进行打包部署

一、Docker Docker 是一个容器化平台,允许你将应用程序及其依赖项打包在容器中。使用 Docker,你可以创建一个包含 Vue.js 应用程序的容器镜像,并在任何支持 Docker 的环境中运行该镜像。 二、Nginx Nginx 是一个高性能的 HTTP 服务器和反向…

Eureka 学习笔记(1)

一 、contextInitialized() eureka-core里面,监听器的执行初始化的方法,是contextInitialized()方法,这个方法就是整个eureka-server启动初始化的一个入口。 Overridepublic void contextInitialized(ServletContextEvent event) {try {init…

React useRef 组件内及组件传参使用

保存变量&#xff0c; 改变不引起渲染 import { useRef} from react; const dataRef useRef(null) ... dataRef.current setTimeout(()>console.log(...),1000)绑定dom const inputRef useRef(null) <input ref {inputRef} />绑定dom列表 - ref 回调 const ite…

无声短视频:成都柏煜文化传媒有限公司

无声短视频&#xff1a;视觉艺术的独特魅力 在数字化时代的浪潮中&#xff0c;短视频以其简短、直观、易于传播的特点迅速崛起&#xff0c;成为当下最热门的媒体形式之一。而在众多的短视频类型中&#xff0c;无声短视频以其独特的视觉表达方式&#xff0c;逐渐吸引了越来越多…

mysql竖表变横表不含聚合

文章目录 前言一、vertical_table二、转换1.要将其转换为横表形式&#xff0c;例如&#xff1a;2.sql 总结 前言 在MySQL中将竖表转换为横表&#xff08;也称为行转列操作&#xff09;&#xff0c;不涉及聚合函数&#xff0c;通常可以通过使用条件判断和自连接来实现。假设有一…

Intelij IDEA中Mapper.xml无法构建到资源目录的问题

问题场景&#xff1a; 在尝试把原本在eclipse上的Java Web项目转移至Intelij idea上时&#xff0c;在配置文件均与eclipse一致的情况下出现了如下报错&#xff1a; org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.umbrella.crm_core.…

leetcode118 杨辉三角

给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[1]] public List…

信创服务器操作系统的适配迁移分析

浅谈信创服务器操作系统的适配迁移 01 服务器操作系统迁移适配流程复杂 随着CentOS停服临近和红帽RHEL源码权限受限&#xff0c;服务器操作系统安全漏洞风险加剧。国内众多企业面临CentOS、REHL等系统升级替换的挑战。同时&#xff0c;出于安全、功能升级和合规需求&#xff0…

33、循环语句--函数---递归+阶乘

一、函数 1.1、shell的函数 1.1.1、函数的定义&#xff1a;将命令序列按照格式写在一起。格式指的是函数的固定格式。两种格式。 for i in {}do命令序列doneif []then 命令序列else命令序列fi #可以作为一个命令序列作用&#xff1a;方便重复使用&#xff0c;函数库&…

CubeMx打不开

问题点&#xff1a;打开CubeMx一直这个界面&#xff0c;然后就消失了。 问题所在&#xff1a;java版本过高。 博主的版本是合适的&#xff0c;如果你的版本是17什么的肯定是不合适的。 解决方法&#xff1a;卸载重装 卸载工具站内下载&#xff0c;免安装&#xff1a;&#xf…

相机的标定

文章目录 相机的标定标定步骤标定结果影响因素参数分析精度提升一、拍摄棋盘格二、提升标定精度 标定代码实现 相机的标定 双目相机的标定是确保它们能够准确聚焦和成像的关键步骤。以下是详细的标定步骤和可能的结果&#xff0c;同时考虑了不同光照条件和镜头光圈大小等因素对…

4.1. 马氏过程及其构造

马氏过程及其构造 1. 马氏过程与转移概率1.1. Markov过程1.2. 示例1.3. 四元函数(转移概率)2. 活动概率空间: P x , P μ P_x,P_\mu Px​,Pμ​2.1. 初始点为 x x x活动概率空间 P x P_x Px​2.2. 初始分布为 μ \mu μ的活动概率空间 P μ P_\mu Pμ​对于围棋, 如果某个时刻形…

极速解析,精准合规 — Ada,现代C++的URL解析器

Ada&#xff1a;用Ada&#xff0c;让URL解析变得轻而易举。- 精选真开源&#xff0c;释放新价值。 概览 Ada是一个用现代C编写的快速且符合WHATWG标准的URL解析库。它通过了WHATWG网站提供的全部规范测试&#xff0c;并在包括Windows、Linux、macOS在内的多个平台上表现卓越。…

Python机器学习分类算法(二)-- 决策树(Decision Tree)

决策树&#xff08;Decision Tree&#xff09;是一种基于树形结构的分类和回归方法&#xff0c;它主要用于在给定输入特征的情况下预测目标变量的值。以下是关于决策树的详细解释&#xff1a; 定义 决策树是一种直观的决策分析方法&#xff0c;通过构成树形结构来求取净现值的…

LeetCode 2288.价格减免:模拟

【LetMeFly】2288.价格减免&#xff1a;模拟 力扣题目链接&#xff1a;https://leetcode.cn/problems/apply-discount-to-prices/ 句子 是由若干个单词组成的字符串&#xff0c;单词之间用单个空格分隔&#xff0c;其中每个单词可以包含数字、小写字母、和美元符号 $ 。如果单…

关于vue elementUi校验slot插槽中的表单项

项目场景&#xff1a;在父组件表单中使用子组件&#xff0c;并使用子组件插槽功能来管理父组件的单个表单项 重点提示&#xff1a;这里要明确一个概念&#xff0c;凡是在组件内插槽的内容都属于组件管理&#xff0c;因此&#xff0c;要校验父组件使用子组件的slot插槽展示表单…