当前位置: 首页 > news >正文

【shell脚本速成】函数

在这里插入图片描述

文章目录

    • 一、函数
      • 1.1、函数介绍
      • 1.2、函数定义
      • 1.3、函数调用

🌈你好呀!我是 山顶风景独好
🎈欢迎踏入我的博客世界,能与您在此邂逅,真是缘分使然!😊
🌸愿您在此停留的每一刻,都沐浴在轻松愉悦的氛围中。
📖这里不仅有丰富的知识和趣味横生的内容等您来探索,更是一个自由交流的平台,期待您留下独特的思考与见解。🌟
🚀让我们一起踏上这段探索与成长的旅程,携手挖掘更多可能,共同进步!💪✨

shell脚本中的代码是按照执行的优先级的顺序从上往下抒写的,代码量越大,在脚本调试的时候就越难排错,当因执行需要调整代码执行顺序的时候就需要不断的复制粘贴,或者删除部分代码来完成,这和从写一个脚本花费的时候相比甚至需要更长的时间。

代码量大后遇到的问题:

  • 单个脚本代码量大 (300-500行)
  • 阅读修改耗时费力
  • 排错困难
  • 改变执行顺序困难

为了解决这些问题,我们可以把代码模块化,按需调用。

一、函数

1.1、函数介绍

shell中允许将一组命令集合语句形成一段可用代码,这些代码块称为shell函数。给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能。

将完成一个功能的一段代码进行命名、封装

函数的优点:

  1. 代码模块化,调用方便,节省内存
  2. 代码模块化,代码量少,排错简单
  3. 代码模块化,可以改变代码的执行顺序

1.2、函数定义

语法一:函数名 () {代码块return N}语法二:
function 函数名 {代码块return N}函数中return说明:
1.return可以结束一个函数,类似于前面讲的循环控制语句break(结束当前循环,执行循环体后面的代码)
2.return默认返回函数中最后一个命令的退出状态,也可以给定参数值,该参数值的范围是0-256之间。
3.如果没有return命令,函数将返回最后一个Shell的退出值。

1.3、函数调用

  • 当前命令行调用
[root@zutuanxue shell04]# cat fun1.sh 
#!/bin/bash
hello(){
echo "hello zutuanxue $1"
hostname
}
menu(){
cat <<-EOF
1. mysql
2. web
3. app
4. exit
EOF
}[root@zutuanxue shell04]# source fun1.sh 
[root@zutuanxue shell04]# . fun1.sh [root@zutuanxue shell04]# hello 888
hello zutuanxue 888
MissHou.zutuanxue.cc
[root@zutuanxue shell04]# menu
1. mysql
2. web
3. app
4. exit
  • 定义到用户的环境变量中
/etc/profile	/etc/bashrc		~/.bash_profile	~/.bashrc[root@zutuanxue shell04]# cat ~/.bashrc 
# .bashrc# User specific aliases and functionsalias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then. /etc/bashrc
fihello(){
echo "hello zutuanxue $1"
hostname
}
menu(){
cat <<-EOF
1. mysql
2. web
3. app
4. exit
EOF
}注意:
当用户打开bash的时候会读取该文件
  • 脚本中调用
#!/bin/bash
#打印菜单
source ./fun1.sh
menu(){
cat <<-ENDh	显示命令帮助f	显示磁盘分区d	显示磁盘挂载m	查看内存使用u	查看系统负载q	退出程序END
}
menu		//调用函数

✨ 这就是今天要分享给大家的全部内容了,我们下期再见!😊
🏠 我在CSDN等你哦!我的主页😍

相关文章:

【shell脚本速成】函数

文章目录 一、函数1.1、函数介绍1.2、函数定义1.3、函数调用 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xf…...

拒绝零散碎片, 一文理清MySQL的各种锁

系列文章目录 学习MySQL先有全局观&#xff0c;细说其发展历程及特点 Mysql常用操作&#xff0c;谈谈排序与分页 拒绝零散碎片&#xff0c; 一文理清MySQL的各种锁&#xff08;收藏向&#xff09; 系列文章目录一、MySQL的锁指什么二、排他与共享三、全局锁&#xff08;Global…...

P5711 【深基3.例3】闰年判断

1. 题目链接 https://www.luogu.com.cn/problem/P5711 P5711 【深基3.例3】闰年判断 2. 题目描述 题目描述&#xff1a;判断一个数是否是闰年 输入&#xff1a;输入一个整数n 输出&#xff1a;输出1或0&#xff0c;如果是闰年&#xff0c;输出1&#xff0c;否则输出0 3. 我的…...

基于Raft算法实现的分布式键值对存储系统——学习笔记

目录 1 基于Raft算法实现的分布式键值对存储系统 1.1 模块 2 Raft 算法 2 .1 概念 2.2 raft角色&#xff08;先简单了解&#xff0c;方便后续阅读&#xff09; 2.3 raft想解决什么问题&#xff1f; 2.4 选举领导 2.5 领导者故障 附录&#xff1a; 参考文献&#xff1…...

秋招突击——6/17——复习{整理昨天的面试资料}——新作{删除链表倒数第n个节点}

文章目录 引言复习新作删除链表倒数第N个节点题目描述个人实现参考实现 总结 引言 主管面&#xff0c;面的很凄惨&#xff0c;不过无所谓了&#xff0c;我已经尽力了。上午都在整理的面经&#xff0c;没有复习算法&#xff0c;而且这两天要弄一下论文&#xff0c;二十号就要提…...

宝塔面板使用技巧(pure-FTP)上传文件和文件夹默认权限644的修改

前言 科技在进步各种各样的开源软件和库让我们应接不暇&#xff0c;我估计现在所有做php开发的人员都知道宝塔面板&#xff0c;我就经常用&#xff0c;但是不知道大家出现过一个问题不就是在我们开发过程中需要实时的给服务器上传我们开发的文件那么就涉及到了宝塔自带的pure-F…...

mac m芯片安装win11遇坑

mac m芯片安装win11遇坑 1、下载arm架构镜像 磁力链接&#xff1a; magnet:?xturn:btih:e8c15208116083660709eac9aee124e025c01447&dnSW_DVD9_Win_Pro_11_22H2_64ARM_ChnSimp_Pro_Ent_EDU_N_MLF_X23-12755.ISO&xl57198960642、使用VMWare Fusion安装&#xff0c;启…...

一个自定义流程的平台

脚本语言使用的是C#&#xff0c;当用户发布一个新的流程时&#xff0c;会把C#的脚本编译成dll&#xff0c;然后添加到微服务中&#xff0c;因为有了硬编译&#xff0c;所以执行速度是非常快的。逻辑脚本支持调试&#xff0c;可以断点和逐行调试。平台提供了调试工具&#xff0c…...

舔狗日记Puls微信小程序源码

源码介绍&#xff1a; 这是一款舔狗日记Puls微信小程序源码&#xff0c;提供每日一舔的功能&#xff0c;让你舔到最后&#xff0c;什么都有&#xff01; 源码通过API获取一些舔狗日记&#xff0c;内置了100多句舔狗日记&#xff0c;让你摆脱上班摸鱼的无聊时光&#xff0c; …...

PyMuPDF 操作手册 - 05 PDF的OCR识别等

文章目录 六、PyMuPDF的OCR识别6.1 使用 Tesseract进行OCR6.2 使用MuPDF进行OCR6.3 使用 Python 包easyocr进行OCR识别6.4 使用 Python ocrmypdf包进行OCR识别6.5 将图像批量OCR并转换为PDF七、PDF附加、嵌入、批注等7.1 附加文件7.2 嵌入文件7.3 从文档中获取所有批注六、PyMu…...

Vue与TypeScript的配合:如何在Vue项目中使用TypeScript,利用静态类型提高代码的可维护性

环境搭建: 在你的 Vue 项目中使用 TypeScript,使你的代码具有静态类型检查、IDE 的类型提示等有益的功能。以下是搭建 Vue 和 TypeScript 的开发环境的步骤: 创建一个项目 使用 Vue CLI 创建一个新的Vue项目是最简单的方法: vue create my-project 在出现的提示中,选择…...

华为仓颉语言介绍

文章目录 1.简介2.初识仓颉语言3.基本概念3.1标识符3.2程序结构3.3变量3.4表达式3.4.1if 表达式3.4.2while语句3.4.3do-while表达式3.4.4 for-in 表达式3.4.5 where条件3.4.6 break和continue 3.5 函数 1.简介 随着万物互联以及智能时代的到来&#xff0c;软件的形态将发生巨大…...

《昇思 25 天学习打卡营第 3 天 | 张量 Tensor 》

《昇思 25 天学习打卡营第 3 天 | 张量 Tensor 》 活动地址&#xff1a;https://xihe.mindspore.cn/events/mindspore-training-camp 签名&#xff1a;Sam9029 感觉像是在 学习高数一样 张量 Tensor 张量是一种特殊的数据结构&#xff0c;与数组和矩阵非常相似。 张量&#xf…...

free命令——显示系统内存使用情况

free命令的功能是显示系统内存使用情况&#xff0c;包含物理内存和交换内存的总量、使用量和空闲量。 语法格式&#xff1a;free [选项] 常用选项及含义 选项含义-b以字节B为单位显示内存和交换内存的容量使用情况-k以KB为单位显示内存和交换内存的容量使用情况-m以MB为单位…...

麒麟移动运行环境(KMRE)——国内首个开源的商用移固融合“Android生态兼容环境”正式开源

近日&#xff0c;由麒麟软件研发的KMRE&#xff08;Kylin Mobile Runtime Environment&#xff0c;麒麟移动运行环境&#xff09;在openKylin&#xff08;开放麒麟&#xff09;社区正式发布&#xff0c;为Linux桌面操作系统产品提供了高效的Android运行环境解决方案。这也是国内…...

print(“{}{}“.format())

print("{}{}".format()) 是 Python 中用于格式化字符串并将其输出到控制台的一种方法。format 方法允许你在字符串中插入变量或表达式的值&#xff0c;并以指定的格式显示它们。 基本语法 print("format_string".format(value1, value2, ...))format_str…...

2-12 基于CV模型卡尔曼滤波、CT模型卡尔曼滤波、IMM模型滤波的目标跟踪

基于CV模型卡尔曼滤波、CT模型卡尔曼滤波、IMM模型滤波的目标跟踪。输出跟踪轨迹及其误差。程序已调通&#xff0c;可直接运行。 2-12 CV模型卡尔曼滤波 CT模型卡尔曼滤波 - 小红书 (xiaohongshu.com)...

序列1bp插入有什么影响

1bp插入突变&#xff08;1个碱基插入&#xff09;在基因序列中通常会引起以下几种影响&#xff1a; 移码突变&#xff08;Frameshift Mutation&#xff09;&#xff1a; 插入的一个碱基会改变插入点之后所有的密码子&#xff0c;导致读取框的移动。这种变化通常会引起整个蛋白质…...

CVPR 2024盛况空前,上海科技大学夺得最佳学生论文奖,惊艳全场

CVPR 2024盛况空前&#xff01;上海科技大学夺得最佳学生论文奖&#xff0c;惊艳全场&#xff01; 会议之眼 快讯 2024 年 CVPR &#xff08;Computer Vision and Pattern Recogntion Conference) 即国际计算机视觉与模式识别会议&#xff0c;于6月17日至21日正在美国西雅图召…...

HTTP 状态码详解及使用场景

目录 1xx 信息性状态码2xx 成功状态码3xx 重定向状态码4xx 客户端错误状态码5xx 服务器错误状态码 HTTP思维导图连接&#xff1a;https://note.youdao.com/s/A7QHimm0 1xx 信息性状态码 100 Continue&#xff1a;表示客户端应继续发送请求的其余部分。 使用场景&#xff1a;客…...

【Windows】配置Flutter开发环境

一、下载 flutter sdk 点此跳至下载官网 下载好flutter sdk&#xff0c;并解压到自定义的位置。 二、配置环境变量 此电脑 --> 右键 选择 属性 --> 点击 高级系统设置 --> 会弹出系统属性的窗口&#xff0c;点击 环境变量 按钮 1.配置加速镜像地址 PUB_HOSTED_…...

云渲染与传统渲染器的较量与融合

随着云计算技术的突破性进展&#xff0c;云渲染技术应运而生&#xff0c;为传统渲染器带来了前所未有的挑战与机遇。云渲染&#xff0c;以其在计算资源、可扩展性、协作便利性等方面的显著优势&#xff0c;正在重新定义渲染行业的标准。云渲染与传统渲染器之间的核心差异&#…...

比较新旧两数组列表,新增或删除数据库记录(ai生成)

两数组比较 元素相同则不处理,缺少则删除数据库记录,多余则新增数据库记录。 为了解决这个问题&#xff0c;我们需要定义两个数组array1和array2&#xff0c;它们包含数据库中的记录。然后&#xff0c;我们可以遍历这两个数组&#xff0c;并对数据库执行相应的操作。以下是一个…...

Java基础 - 练习(五)根据今天日期获取一周内的日期(基姆拉尔森公式)

基姆拉尔森计算公式用于计算一周内的日期。比如给你年月日&#xff0c;从而计算今天是星期几。 基姆拉尔森公式 Week (d2*m3*(m1)/5yy/4-y/100y/4001) mod 7&#xff0c; 3<m<14Week的取值范围是0 ~ 6&#xff0c;其中0代表星期日&#xff0c;1 ~ 6分别代表星期一到星期…...

HTML5 新元素

HTML5 新元素 HTML5是最新版本的HTML&#xff0c;引入了许多新元素和功能&#xff0c;以更好地满足现代网页设计的需要。这些新元素不仅增强了网页的表现力&#xff0c;还提高了代码的可读性和可维护性。本文将详细介绍HTML5中的新元素&#xff0c;包括它们的功能和用法。 1.…...

虹软ArcSoft—真正离线免费的人脸识别SDK

虹软ArcSoft—真正离线免费的人脸识别SDK 高级功能收费 还是很好滴 人证核验功能是C/C的SDK&#xff0c;需要封装为C#&#xff0c;然后暴露为Restful API使用...

[环境配置]vscode通过ssh连接autodl进行项目开发

警告&#xff1a;如果使用VSCode直接执行或开终端执行训练程序&#xff0c;请在调试完成后最后通过screen/tmux工具开守护进程&#xff0c;确保程序不受SSH连接中断影响程序执行&#xff01; 官方文档&#xff1a;请戳 AutoDL使用方法&#xff1a; 在进行操作前您需要提前安装…...

2024中国宁波-东南亚职业教育产教协同发展校企对接会举办

2024年6月16日&#xff0c;由东南亚教育部长组织技术教育发展中心&#xff08;SEAMEO TED&#xff09;、联合国教科文组织国际农村教育研究与培训中心&#xff08;UNESCO INRULED&#xff09;、中国教育国际交流协会&#xff08;CEAIE&#xff09;三方主办的“2024中国宁波-东南…...

Web前端、后端与建站:全方位解析四大基石、五大挑战、六大技术与七大策略

Web前端、后端与建站&#xff1a;全方位解析四大基石、五大挑战、六大技术与七大策略 在当今数字化时代&#xff0c;Web前端、后端以及建站技术已经成为构建现代网站和应用不可或缺的关键要素。本文将从四个方面探讨Web前端与后端的基础&#xff0c;从五个方面分析建站过程中的…...

nginx出现504 Gateway Time-out错误的原因分析及解决

nginx出现504 Gateway Time-out错误的原因分析及解决 1、查看公网带宽是否被打满 2、查看网络是否有波动(可以在nginx上ping后端服务&#xff0c;看是否有丢包情况) 3、查看服务器资源使用情况(cpu、内存、磁盘、网络等) 4、查看nginx日志&#xff0c;具体到哪个服务的哪个…...

建站费用明细/网络营销师证书有用吗

当L0文件达到12个, 而compaction来不及的时候, 写入完全阻塞, 这个阻塞时间可能长达10s.LevelDB实现上是L0达到4个时开始触发compaction, 8个时开始减慢写入, 12个时完全停止写入. 具体配置是写死的, 不过可以在编译时修改:// Level-0 compaction is started when we hit this …...

做网站找什么公司工作/西安seo培训学校

compile是exec和eval的低级版本。它不执行或计算您的语句或表达式&#xff0c;但返回可以执行此操作的代码对象。模式如下&#xff1a;compile(string, , eval)返回完成eval(string)时将执行的代码对象。注意&#xff0c;不能在此模式下使用语句&#xff1b;只有(单个)表达式有…...

腾讯云网站搭建/网站建设制作专业

在折线图上&#xff0c;每两个标记点的显示距离都是一样的&#xff0c;不管实际的间隔&#xff0c;100-1000和1000-10000 在坐标轴上的显示距离都一样 所以如果你给的标记点本身是等距的&#xff0c;如1月 2月 3月 4月 5月。。。那他显示效果和散点图基本是一样的 但如果标记点…...

班级网站中个人简介怎么做/电脑培训

PROXMOX6.3.6 更改机器名称 参考链接 https://www.baidu.com/link?urlljbh9wHn6YRho6nxxBdbydXNZ3vDERHVZF98SqkDNxJagu4NCtTfvnz5NilOiqqs-peS57O0v5z1t7r2-Zy2dhGQ7D5oIilOM6guFO9uTIa&wd&eqida61791420001d917000000066083e127 参考这个链接准备不停机修改主机名…...

外贸操作流程/云seo关键词排名优化软件

这篇文章主要介绍了PHP统计数值数组中出现频率最多的10个数字的方法,涉及php中array_count_values与arsort等方法的相关使用技巧,非常具有实用价值,需要的朋友可以参考下本文实例讲述了PHP统计数值数组中出现频率最多的10个数字的方法。分享给大家供大家参考。具体分析如下&…...

58同城 网站建设/最近重大新闻

这是一种沿行复制元素的方法,为我们提供了一个2D数组.然后,我们将用大数字填充上三角区域,以便稍后当我们沿着每一行对数组进行排序时,基本上将所有元素排序到对角线元素并模拟累积窗口.然后,按照选择中间一个的中位数或两个中间一个的平均值的定义(对于偶数没有元素),我们将得…...