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

linux shell 入门学习笔记16 流程控制开发

shell的流程控制一般包括if、for、while、case/esac、until、break、continue语句构成。

if语句开发

单分支if
//方式1
if <条件表达式>
then
代码。。。
fi
//方式2
if <条件表达式>;then
代码。。。
fi

双分支if
if <条件表达式>
then
代码1
if <条件表达式>
then
代码2
fi
fi

if-else处理
if <条件表达式>
then
当条件成立,会执行我
else
否则就会执行我
fi
// if-else 多分支处理
if <条件表达式1>
then
代码1
elif <条件表达式2>
then
代码2
elif <条件表达式3>
then
代码3
else
代码4
fi

if 实战
将之前的[] [[]] test条件判断的语句改成if+条件判断的语句
xiao123@xiao123:~/Downloads/shscripts$ [ -f /etc/hosts ] && echo yes
yes
xiao123@xiao123:~/Downloads/shscripts$ [[ -f /etc/hosts ]] && echo yes
yes
xiao123@xiao123:~/Downloads/shscripts$ test -f /etc/hosts && echo yes
yes
xiao123@xiao123:~/Downloads/shscripts$
xiao123@xiao123:~/Downloads/shscripts$ bash ./if_1.sh
[] is ok
[[]] is ok
test is ok
xiao123@xiao123:~/Downloads/shscripts$ cat ./if_1.sh
#! /bin/bashif [ -f /etc/hosts ]thenecho "[] is ok"
fiif [[ -f /etc/hosts ]]; thenecho "[[]] is ok"
fiif test -f /etc/hosts; thenecho "test is ok"
fi
xiao123@xiao123:~/Downloads/shscripts$

开发系统监控脚本

开发shell脚本

  1. 检查Linux剩余可用内存,当可用内存小于100M,就发邮件给运维。
  2. 并且该脚本加入crontab,每3分钟检查一次内存。
xiao123@xiao123:~/Downloads/shscripts$ bash free_1.sh
Current memory is 1081
内存不足,抓紧维护服务器!
xiao123@xiao123:~/Downloads/shscripts$ cat free_1.sh
#! /bin/bashFreeMem=`free -m |awk 'NR==2 { print $NF }'`CHARS="Current memory is ${FreeMem}"if [ "${FreeMem}"  -lt 2100 ];thenecho ${CHARS}|tee /tmp/message.txt# mail -s "主题" 收件人 <# mail -s "`date +%F-%T` ${CHARS}" yc_urrr@163.com < /tmp/message.txtecho "内存不足,抓紧维护服务器!"
fi
xiao123@xiao123:~/Downloads/shscripts$
xiao123@xiao123:~/Downloads/shscripts$ crontab -e
crontab: installing new crontab
xiao123@xiao123:~/Downloads/shscripts$
xiao123@xiao123:~/Downloads/shscripts$ crontab -l
*/3 * * * * /bin/bash /home/xiao123/Downloads/shscripts/free_1.sh
xiao123@xiao123:~/Downloads/shscripts$

if实战开发

单分支实战

xiao123@xiao123:~/Downloads/shscripts$ bash ./if_read.sh  1 2
yes, 1 less than 2
xiao123@xiao123:~/Downloads/shscripts$ bash ./if_read.sh  2 2
yes, 2 equal 2
xiao123@xiao123:~/Downloads/shscripts$ bash ./if_read.sh  3 2
yes, 3 greather than 2
xiao123@xiao123:~/Downloads/shscripts$ cat ./if_read.sh
#! /bin/basha=$1
b=$2if [ $a -lt $b ]; thenecho "yes, $a less than $b"
fiif [ $a -eq $b ]; thenecho "yes, $a equal $b"
fiif [ $a -gt $b ]; thenecho "yes, $a greather than $b"
fi
xiao123@xiao123:~/Downloads/shscripts$

多分支实战

xiao123@xiao123:~/Downloads/shscripts$ bash ./if_read.sh  1 1
yes, 1 equal 1
xiao123@xiao123:~/Downloads/shscripts$ bash ./if_read.sh  1 2
yes, 1 less than 2
xiao123@xiao123:~/Downloads/shscripts$ bash ./if_read.sh  2 1
yes, 2 greather than 1
xiao123@xiao123:~/Downloads/shscripts$ cat ./if_read.sh
#! /bin/basha=$1
b=$2if [ $a -lt $b ]; thenecho "yes, $a less than $b"
elif [ $a -eq $b ]; thenecho "yes, $a equal $b"
elif [ $a -gt $b ]; thenecho "yes, $a greather than $b"
fi
xiao123@xiao123:~/Downloads/shscripts$

相关文章:

linux shell 入门学习笔记16 流程控制开发

shell的流程控制一般包括if、for、while、case/esac、until、break、continue语句构成。 if语句开发 单分支if //方式1 if <条件表达式> then 代码。。。 fi //方式2 if <条件表达式>;then 代码。。。 fi 双分支if if <条件表达式> then 代码1 if <条件表…...

机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测

机器学习&#xff1a;基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测 作者&#xff1a;AOAIYI 作者简介&#xff1a;Python领域新星作者、多项比赛获奖者&#xff1a;AOAIYI首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞…...

给VivoBook扩容重装系统

现在笔记本重装系统都这么复杂吗&#xff1f;原谅我还是10年前的装机水平&#xff0c;折腾了一天终于把系统重新安装好了。 笔记本&#xff1a; ASUS VivoBook 安装系统&#xff1a; Win10 1、扩容 电脑配的512G硬盘满了要换个大的&#xff0c;后盖严丝合缝&#xff0c;不…...

vue 依赖注入使用教程

vue 中的依赖注入&#xff0c;官网文档已经非常详细&#xff0c;笔者在这里总结一份 目录 1、背景介绍 2、代码实现 2.1、依赖注入固定值 2.2、 依赖注入响应式数据 3、注入别名 4、注入默认值 5、应用层 Provide 6、使用 Symbol 作注入名 1、背景介绍 为什么会出现依…...

【再临数据结构】Day1. 稀疏数组

前言 这不单单是稀疏数组的开始&#xff0c;也是我重学数据结构的开始。因此&#xff0c;在开始说稀疏数组的具体内容之前&#xff0c;我想先说一下作为一个有着十余年“学龄”的学生&#xff0c;所一直沿用的一个学习方法&#xff1a;3W法。我认为&#xff0c;只有掌握了正确的…...

二十四、MongoDB 聚合运算( aggregate )

MongoDB 聚合( aggregate ) 用于处理数据&#xff0c;比如统计平均值,求和等。然后返回计算后的数据结果 MongoDB 聚合有点类似 SQL 语句中的 COUNT( * ) aggregate() 方法 MongoDB aggregate() 为 MongoDB 数据库提供了聚合运算 语法 aggregate() 方法的语法如下 > d…...

【C++】6.模板初阶

交换两个数 任何一个类型交换还要重新写一个函数 如何解决&#xff1f; 模板->写跟类型无关的函数 1.泛型编程 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段。模板是泛型编程的基础。 如何写一个函数适用所有类型的交换? #include &…...

Docker部署Airbyte

Linux环境部署前置要求机器配置2c4g(最低)&#xff0c;4c8g&#xff08;推荐&#xff09;dockerdocker-compose &#xff08;要求新版本的docker-compose&#xff09;安装airbyte,打开终端&#xff0c;进入你想安装airbyte的目录。#Clone代码 git clone https://github.com/air…...

2023王道考研数据结构笔记第一章绪论

第一章 绪论 1.1 数据结构的基本概念 1.数据&#xff1a;数据是信息的载体&#xff0c;是描述客观事物属性的数、字符以及所有能输入到计算机中并被程序识别和处理的符号的集合。 2.数据元素&#xff1a;数据元素是数据的基本单位&#xff0c;通常作为一个整体进行考虑和处理…...

告别空指针让代码变优雅,Optional使用图文例子源码解读

一、前言 我们在开发中最常见的异常就是NullPointerException&#xff0c;防不胜防啊&#xff0c;相信大家肯定被坑过&#xff01; 这种基本出现在获取数据库信息中、三方接口&#xff0c;获取的对象为空&#xff0c;再去get出现&#xff01; 解决方案当然简单&#xff0c;只…...

【C++】哈希——unordered系列容器|哈希冲突|闭散列|开散列

文章目录一、unordered系列关联式容器二、哈希概念三、哈希冲突四、哈希函数五、解决哈希冲突1.闭散列——开放定址法2.代码实现3.开散列——开链法4.代码实现六、结语一、unordered系列关联式容器 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c…...

mysql-面试

锁&#xff1a; mysql的锁分为全局锁、表锁、行锁、间隙锁 全局锁&#xff1a;Flush tables with read lock 可以全局设计库为只读 表锁&#xff1a;一种是表锁&#xff0c;一种是元数据锁&#xff08;meta data lock&#xff0c;MDL&#xff09; lock tables t1 read,t2 wi…...

【夏虫语冰】Win10局域网下两台电脑无法ping通: 无法访问目标主机

文章目录1、简介2、修改高级共享设置3、启用防火墙规则4、局域网内的其他主机访问NAT模式下的虚拟机4.1 虚拟机网络设置4.2 访问测试4.2.1 http测试4.2.2 curl测试4.2.3 telnet测试4.2.4 端口占用测试5、其他结语1、简介 ping 192.168.31.134ping主机ip时&#xff0c;访问无法…...

大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——Join多种应用

3.7.1Reduce Join 1、工作原理 Map端的主要工作&#xff1a;为来自不同表或文件的key/value对&#xff0c;打标签以区别不同来源的记录。然后用连接字段作为key&#xff0c;其余部分和新加的标志作为value&#xff0c;最后进行输出。 Reduce端的主要工作&#xff1a;在Reduc…...

SSRF漏洞原理、危害以及防御与修复

一、SSRF漏洞原理漏洞概述SSRF&#xff08;Server-side Request Forge&#xff0c;服务端请求伪造&#xff09;是一种由攻击者构造形成由服务端发起请求的安全漏洞。一般情况下&#xff0c;SSRF攻击的目标是从外网无法访问的内部系统。正是因为它是由服务端发起的&#xff0c;所…...

CV学习笔记-ResNet

ResNet 文章目录ResNet1. ResNet概述1.1 常见卷积神经网络1.2 ResNet提出背景2. ResNet网络结构2.1 Residual net2.2 残差神经单元2.3 Shortcut2.4 ResNet50网络结构3. 代码实现3.1 Identity Block3.2 Conv Block3.3 ResNet网络定义3.4 整体代码测试1. ResNet概述 1.1 常见卷积…...

百亿数据,毫秒级返回查询优化

近年来公司业务迅猛发展&#xff0c;数据量爆炸式增长&#xff0c;随之而来的的是海量数据查询等带来的挑战&#xff0c;我们需要数据量在十亿&#xff0c;甚至百亿级别的规模时依然能以秒级甚至毫秒级的速度返回&#xff0c;这样的话显然离不开搜索引擎的帮助&#xff0c;在搜…...

cpp之STL

STL原理 STL ⼀共提供六⼤组件&#xff0c;包括容器&#xff0c;算法&#xff0c;迭代器&#xff0c;仿函数&#xff0c;适配器和空间配置器&#xff0c;彼此可以组合套⽤。容器通过配置器取得数据存储空间&#xff0c;算法通过迭代器存取容器内容&#xff0c;仿函数可以协助算…...

基于Spring Boot开发的资产管理系统

文章目录 项目介绍主要功能截图:登录首页信息软件管理服务器管理网络设备固定资产明细硬件管理部分代码展示设计总结项目获取方式🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目…...

Markdown总结

文字的着重标记与段落的层次划分 Tab键可以缩进列表&#xff1b; shift Tab&#xff1a;取消缩进列表 加粗&#xff08;****&#xff09;、斜体&#xff08;**&#xff09;高亮&#xff1a;xxx$$&#xff1a;特殊标记删除&#xff1a;~~xxx~~多级标题&#xff1a;######无序列…...

解决6818开发板 syntax error: unexpected word的问题

首先确定ubantu成功安装了交叉编译工具链。假设需要编译的文件是1.c&#xff0c;需要生成test1文件。在ubantu进行编译&#xff1a;arm-linux-gcc 1.c -o test1然后在开发板上运行&#xff1a;./test1如果开发板出现了syntax error: unexpected word&#xff0c;有可能是使用了…...

Qwen3-0.6B-FP8 FP8量化优势:相比FP16显存节省40%实测数据展示

Qwen3-0.6B-FP8 FP8量化优势&#xff1a;相比FP16显存节省40%实测数据展示 1. 引言&#xff1a;当大模型遇上资源限制 如果你正在寻找一个能在普通显卡上流畅运行的大语言模型&#xff0c;或者想在边缘设备上部署AI对话能力&#xff0c;那么Qwen3-0.6B-FP8绝对值得你关注。 …...

面向开发者的Qwen3-32B落地方案:Clawdbot Web网关版API调用与集成教程

面向开发者的Qwen3-32B落地方案&#xff1a;Clawdbot Web网关版API调用与集成教程 重要提示&#xff1a;本文介绍的方案适用于企业内部私有部署环境&#xff0c;所有服务均部署在内网环境中&#xff0c;通过内部代理和端口转发实现服务间通信&#xff0c;不涉及任何外部网络访问…...

DeepSeek-OCR-2零基础教学:内置临时文件管理,自动清理旧数据

DeepSeek-OCR-2零基础教学&#xff1a;内置临时文件管理&#xff0c;自动清理旧数据 如果你经常需要处理扫描的PDF、纸质文档或者各种截图&#xff0c;想把里面的文字和表格提取出来&#xff0c;那你一定知道传统OCR工具有多让人头疼。要么识别不准&#xff0c;表格变成一堆乱…...

文脉定序系统在AIGC内容评估中的应用:自动筛选优质生成文本

文脉定序系统在AIGC内容评估中的应用&#xff1a;自动筛选优质生成文本 你是不是也遇到过这种情况&#xff1f;用大模型生成内容时&#xff0c;输入一段指令&#xff0c;它一下子给你吐出来几十个不同的版本。有的写得不错&#xff0c;有的却跑题万里&#xff0c;或者干巴巴的…...

嘉立创EDA专业版多账号管理技巧:如何避免激活文件冲突

嘉立创EDA专业版多账号管理实战&#xff1a;告别激活文件冲突&#xff0c;实现高效协同 在电子设计领域&#xff0c;尤其是团队协作或自由职业者同时处理多个客户项目时&#xff0c;一个常见且棘手的问题是如何在同一台工作电脑上优雅地管理多个嘉立创EDA专业版账号。你可能遇到…...

解决银河麒麟无SRS安装包的痛点:自己动手丰衣足食,rpm打包指南

大家好&#xff0c;最近在搞国产化适配&#xff0c;项目在银河麒麟高级服务器系统上&#xff0c;需要部署 SRS 做流媒体分发。 本来想着 yum install -y srs 一把梭&#xff0c;结果你懂的&#xff0c;官方源里压根没有&#xff0c;网上倒是有几个 SRPM 包&#xff0c;但版本老…...

解决STM32CubeIDE中文乱码问题:编码设置与项目配置的终极方案

解决STM32CubeIDE中文乱码问题&#xff1a;编码设置与项目配置的终极方案 在嵌入式开发领域&#xff0c;STM32CubeIDE凭借其与CubeMX的无缝集成&#xff0c;已成为众多开发者的首选工具链。然而&#xff0c;当项目需要添加中文注释或日志信息时&#xff0c;开发者常常会遭遇令人…...

智谱最新视觉大模型GLM-4.6V-Flash-WEB体验:小白也能用的多模态助手

GLM-4.6V-Flash-WEB体验&#xff1a;小白也能用的多模态助手 你是不是经常遇到这种情况&#xff1a;看到一张有趣的图片&#xff0c;想问问AI里面有什么&#xff0c;但要么找不到合适的工具&#xff0c;要么找到了却发现操作复杂、响应缓慢&#xff0c;或者干脆需要付费&#…...

HI3516DV300的SDIO1接口实战:RTL8822BS WiFi模块移植避坑指南

HI3516DV300的SDIO1接口实战&#xff1a;RTL8822BS WiFi模块移植避坑指南 在嵌入式系统开发中&#xff0c;WiFi模块的集成往往是项目成功的关键因素之一。海思HI3516DV300作为一款广泛应用于智能摄像头领域的SoC&#xff0c;其SDIO1接口与RTL8822BS WiFi模块的配合使用&#xf…...