Shell脚本之if的用法
Shell脚本之if的用法
- 1、if语句的格式
- 2、if语句的conditon介绍
- 3、应用举例
1、if语句的格式
1) if-elif-else语法格式
if [ condition1 ]; then # 执行条件1的代码块
elif [ condition2 ]; then # 执行条件2的代码块
else # 执行条件都不满足时的代码块
fi
2) if-else语法格式
if [ condition ]; then # 执行条件的代码块
else # 执行条件不满足时的代码块
fi
3) if语法格式
if [ condition ]; then # 执行条件的代码块
fi
2、if语句的conditon介绍
1)字符串比较
=:检测两个字符串是否相等,相等返回 true。例如,[ "$a" = "$b" ]。
!=:检测两个字符串是否不相等,不相等返回 true。例如,[ "$a" != "$b" ]。
-z:检测字符串长度是否为0,为0返回 true。例如,[ -z "$a" ]。
-n:检测字符串长度是否不为 0,不为 0 返回 true。例如,[ -n "$a" ]。
":检测字符串是否不为空,不为空返回 true。例如,[ "$a" ]。
2)文件存在性检查
-f:检查文件是否存在,存在返回 true。例如,[ -f "file.txt" ]。
-d:检查目录是否存在,存在返回 true。例如,[ -d "dir" ]。
-e:检查文件或目录是否存在,存在返回 true。例如,[ -e "file.txt" ]。
3)数值比较
-eq:检查两个数是否相等,相等返回 true。例如,[ $num -eq $anotherNum ]。
-ne:检查两个数是否不相等,不相等返回 true。例如,[ $num -ne $anotherNum ]。
-lt:检查第一个数是否小于第二个数,小于返回 true。例如,[ $num -lt $anotherNum ]。
-gt:检查第一个数是否大于第二个数,大于返回 true。例如,[ $num -gt $anotherNum ]。
-le:检查第一个数是否小于等于第二个数,小于等于返回 true。例如,[ $num -le $anotherNum ]。
-ge:检查第一个数是否大于等于第二个数,大于等于返回 true。例如,[ $num -ge $anotherNum ]。
3、应用举例
1)根据条件执行不同的代码块:if命令允许你根据给定的条件执行不同的代码块。你可以使用比较运算符(如-eq、-ne、-lt、-gt、-le、-ge)和逻辑运算符(如-a、-o、!)来构建条件表达式。根据条件的结果,你可以选择执行特定的代码块。
if [ $num -gt 10 ]; then echo "数字大于10"
elif [ $num -lt 10 ]; then echo "数字小于10"
else echo "数字等于10"
fi
2)检查文件或目录是否存在:使用if命令可以检查文件或目录是否存在,然后根据结果执行相应的操作
if [ -f "file.txt" ]; then echo "文件存在"
else echo "文件不存在"
fi
3)检查两个字符串是否相等:使用if命令可以比较两个字符串是否相等,并根据结果执行相应的操作
if [ "$str1" = "$str2" ]; then echo "字符串相等"
else echo "字符串不相等"
fi
4)检查变量是否为空:使用if命令可以检查变量是否为空,然后根据结果执行相应的操作
if [ -z "$variable" ]; then echo "变量为空"
else echo "变量不为空"
fi
相关文章:
Shell脚本之if的用法
Shell脚本之if的用法 1、if语句的格式2、if语句的conditon介绍3、应用举例 1、if语句的格式 1) if-elif-else语法格式 if [ condition1 ]; then # 执行条件1的代码块 elif [ condition2 ]; then # 执行条件2的代码块 else # 执行条件都不满足时的代码块 …...
Java实验案例(一)
目录 案例一:买飞机票 案例二:开发验证码 案例三:评委打分 案例四:数字加密 案例五:数组拷贝 案例六:抢红包 案例七:找素数的三种方法 案例八:打印乘法口诀表 案例九&#x…...
Service Worker原理
Service Worker原理 1.基本概念与使用场景:a.什么是Service Worker?它的主要用途是什么?b.Service Worker和Web Worker有什么不同?c.预缓存和缓存的区别 2. 实现细节:a.描述Service Worker的生命周期。b.如何注册和注销一个Service Worker&am…...
MySQL集群高可用架构之MHA
MHA 一、MHA概述1.1 为什么要用MHA?1.2 什么是 MHA?1.3 MHA 的组成1.4 MHA 的特点1.5 故障切换备选主库的算法1.5 MHA工作原理 二、MySQL MHA高可用实例2.1 架构搭建部分1)所有节点服务器安装MySQL2)主从节点服务器添加域名映射3&…...
【算法专题突破】二分查找 - 704. 二分查找(16)
目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:704. 二分查找 - 力扣(LeetCode) 题目非常简单,就是查找一个 target。 2. 算法原理 根据最基本的二分查找算法: 在一个…...
基于Docker_Nginx+LVS+Flask+MySQL的高可用Web集群
一.项目介绍 1.拓扑图 2.详细介绍 项目名称:基于Docker_NginxLVSFlaskMySQL的高可用Web集群 项目环境:centos7.9,docker24.0.5,mysql5.7.30,nginx1.25.2,mysqlrouter8.0.21,keepalived 1.3.5,…...
如何写一份出色的毕业设计任务书
title: 如何写一份出色的毕业设计任务书 date: 2023-09-20 毕业设计任务书是每个毕业生必须面对的关键文档。它不仅是你完成毕业设计的路线图,还是导师评估你工作的依据。因此,撰写一份清晰、详细且具体的任务书至关重要。本文将向你介绍如何编写一份出色…...
RedHat 服务器安装NGINX
参照官方文档:nginx: Linux packages 按顺序操作: 安装前提: sudo yum install yum-utils 设置yum仓库(执行命令的时候会自动新建文件): sudo vi /etc/yum.repos.d/nginx.repo 粘贴下面的内容保存退出…...
跨域问题解决方案(三种)
Same Origin Policy同源策略(SOP) 具有相同的Origin,也即是拥有相同的协议、主机地址以及端口。一旦这三项数据中有一项不同,那么该资源就将被认为是从不同的Origin得来的,进而不被允许访问。 Cross-origin resource…...
多轨音频编辑软件Multitrack Editor mac中文版主要功能
Multitrack Editor mac是一种音频编辑软件,它可以同时处理多个音轨。它通常用于录制、编辑和混合音乐、电影、电视和广播节目等多媒体项目。 Multitrack Editor的主要功能包括录音、编辑、混音和声音效果处理。使用该软件,用户可以同时录制和编辑多个音轨…...
工作中遇到的事务
文章目录 介绍原因分析:修改代码一波三折,再次出现问题 介绍 遇到了一个很有意思的问题。 在service层加了事务。 为了防止并发,在component层加了分布式锁。 先根据前端传入的id,在数据库中使用queryA()查到一个key然后对这个key进行加锁再…...
【论文写作】Latex 所有符号汇总参考
【论文写作】Latex 所有符号汇总参考 文章目录 【论文写作】Latex 所有符号汇总参考1. 希腊字母2. 数学构造3. 分割4. 累加累成等5. 标准函数名称6. 二进制符号(关系符号)7. 箭头8. 杂项符号(其他的符号)9. 数学模式重音、音节10.…...
pom.xml中解决“vulnerable dependency maven:org.yaml:snakeyaml:1.33“警告问题
问题 当我们引入依赖的时候,pom文件会有这样的提示,其大概的意思就是 maven:org.yaml:snakeyaml:1.30"表示通过Maven引入了一个潜在的安全漏洞依赖项"org.yaml:snakeyaml:1.30" 解决办法 其实我们就是要更改这个依赖的版本,…...
栈和队列-Java
目录 一、栈 1.1 概念 1.2 栈的使用 1.3 栈的模拟实现 1.4 栈的应用场景 1.5 概念区分 二、队列 2.1 概念 2.2 队列的使用 2.3 队列的模拟实现 2.4 循环队列 三、双端队列 四、面试题 一、栈 1.1 概念 栈:一种特殊的线性表,只允许在固定的一端进行插…...
ORA-07445: exception encountered: core dump [kdxlin()+4088]---惜分飞
abort方式关闭数据库,启动报错 Tue Sep 19 21:52:56 2023 NOTE: dependency between database orcl and diskgroup resource ora.DATA.dg is established Tue Sep 19 21:52:57 2023 Reconfiguration started (old inc 4, new inc 6) List of instances: 1 (myinst:…...
【C刷题】day3
一、选择题 1、已知函数的原型是: int fun(char b[10], int *a); ,设定义: char c[10];int d; ,正确的调用语句是( ) A: fun(c,&d); B: fun(c,d); C: fun(&c,&d); D: fun(&c,d); 【答案…...
go 线程限制数量 --chatGPT
问:runTask(names, limit), 遍历启动以names的子名称的工作线程 name测试打印,上限数量是limit, 要求打印所有names gpt: 你可以使用 Go 协程来实现 runTask 函数,该函数会遍历启动以 names 子名称的工作线程,并在达到上限数量 …...
【Linux网络编程】日志与守护进程
日志是网络服务器程序在后台以守护进程的形式运行时,处理情况的描述被打印到了日志文件里面,方便维护人员查看。 1.前台进程与后台进程 左边会话输入命令 sleep 10000 & 代表进程后台运行,右边会话输入命令 sleep 20000可以看到命令行解…...
多输入多输出 | MATLAB实现CNN-BiGRU卷积双向门控循环单元多输入多输出
多输入多输出 | MATLAB实现CNN-BiGRU卷积双向门控循环单元多输入多输出 目录 多输入多输出 | MATLAB实现CNN-BiGRU卷积双向门控循环单元多输入多输出预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 MATLAB实现CNN-BiGRU卷积双向门控循环单元多输入多输出…...
Qt: 鼠标形状设置
设置全局鼠标形状 设置完毕后,整个APP的任何窗体,包括Dialog中的鼠标形状都会被修改为设定类型,某一个控件设定的鼠标形状将被替换。一般不建议使用 QCursor cursor;//创建鼠标对象 cursor.setShape(Qt::CursorShape::ClosedHandCursor);//…...
利用 JiuwenSwarm AgentTeam 打造自动化研发团队
利用 JiuwenSwarm AgentTeam 打造自动化研发团队 本文介绍如何通过 JiuwenSwarm AgentTeam 构建自动化研发团队,实现字幕软件开发、AtomGit Issue/PR 智能处理与飞书文档同步。 目录 JiuwenSwarm 平台概述 系统架构预置智能体类型 什么是 AgentTeams飞书群中添加机…...
为AI编码代理构建确定性安全层:开源安全网关ai-sec实战指南
1. 项目概述:为AI编码代理构建确定性安全层如果你正在使用Claude Code、Cursor、Codex这类AI编码助手,或者正在开发基于LLM的自动化工作流,那么一个核心的痛点你一定深有体会:如何确保AI不会执行危险命令?当AI助手建议…...
别再死记硬背了!用数字电路里的‘上升沿’和‘下降沿’来理解epoll的ET模式(附Linux C++代码演示)
从数字电路到高性能IO:用硬件思维理解epoll的边沿触发模式 当你在示波器上观察一个时钟信号时,工程师们最关心的往往不是电平本身的高低,而是电平跳变的瞬间——那个被称为"边沿"的微妙时刻。这种硬件设计中的经典概念,…...
自主AI助手Angel:基于大语言模型的多通道智能体部署与实战
1. 项目概述:一个能帮你“跑腿”的自主AI助手如果你和我一样,经常在Discord、Slack、iMessage和Signal这几个聊天软件之间来回切换,同时电脑上还开着十几个终端窗口处理各种杂事,那你肯定幻想过能有一个“数字管家”。它最好能看懂…...
汽车电子架构演进:从分布式ECU到域控制器的技术变革与工程实践
1. 从一周新闻看汽车电子的演进脉络2012年8月的那一周,对于汽车电子行业来说,是平静水面下暗流涌动的一个缩影。当时,我正和几位在主机厂和Tier 1供应商工作的朋友频繁交流,大家普遍的感觉是,传统的汽车电子电气架构&a…...
构建具备上下文感知的智能对话机器人:从记忆管理到主动服务
1. 项目概述:一个能“悬浮”的智能对话机器人最近在GitHub上看到一个挺有意思的项目,叫goncharenko/hoverbot-chatbot。光看名字,hoverbot就挺抓人眼球的,直译过来是“悬浮机器人”,这不禁让人好奇,一个聊天…...
现代软件工程样板项目:从设计到实践的全栈项目初始化指南
1. 项目概述:从仓库名到项目骨架的深度解构看到advhcghbot/sample-project-2026这个项目标题,很多人的第一反应可能是:“这看起来像是一个占位符或者模板项目。” 没错,从字面上看,“sample-project”直译就是“示例项…...
环境光传感器在可穿戴设备中的关键技术与应用
1. 环境光传感器的核心价值与可穿戴设备需求在智能手表和健身手环等可穿戴设备中,屏幕背光功耗往往占据总能耗的30%以上。传统固定亮度方案不仅浪费电量,强光下看不清、暗光下刺眼的问题也严重影响用户体验。环境光传感器(Ambient Light Sensor, ALS)正是…...
一种新型傅里叶邻接Transformer用于脑电情绪识别
该片文章是频域先验 空间拓扑 Transformer在 EEG 情绪识别的里程碑,针对现有模型频域特征挖掘不足、Transformer 缺乏归纳偏置、跨被试泛化差三大核心痛点,提出傅里叶邻接 Transformer(FAT),在 SEED、DEAP 数据集上刷…...
DeepSeek本地部署:从零开始,把大模型跑在自己电脑上
DeepSeek本地部署:从零开始,把大模型跑在自己电脑上我们公司因为数据安全要求,所有文档不能传到外部API。但团队又想用AI辅助写代码、做文档分析。解决方案:本地部署DeepSeek。这篇文章记录了完整的部署过程、踩过的坑、以及部署之…...
