[Linux] shell条件语句和if语句

一、条件语句

1.1 测试

test 测试文件的表达式是否成立

格式:test 条件表达式

           [ 条件表达式 ]

选项作用
-d测试是否为目录
-e测试目录或文件是否存在
-a测试目录或文件是否存在
-f测试是否为文件
-r测试当前用户是否有权限读取
-w测试当前用户是否有权限写入
-x测试当前用户是否有权限执行
-L测试是否为软连接文件
test

1.2 比较整数

[ 整数1 -操作符 整数2 ] 公式

        -eq:第一个数等于第二个数

        -ne:第一个数不等于第二个数

        -gt:第一个数大于第二个数

        -lt:第一个数小于第二个数

        -le:第一个数小于或等于第二个数

        -ge:第一个数大于或等于第二个数

 1.3 字符串比较

= 字符串相同
!= 字符串不相同
-z 字符串内容为空
-n 字符是否存在

格式:

[ $a = $b ] 是否相同[  $a  !=  $b ]  是否不相同[  -z  $b ]   是否为空[  -n  $a ] 字符是否存在

1.4 逻辑测试

格式:[ 表达式1 ] 操作符 [ 表达式2 ] ...

           命令1 操作符 命令2...

短路与

全真才为真;一假即为假

cmd1 && cmd2

短路或

 一真才即为真;全假才为假

cmd1 || cmd2

应用

cmd1 && cmd2 || cmd3

1.5 双中括号

用法

[[ == (通配符) ]]

[[ =~ (正则表达式) ]]

1.6 () {}

用途:都可以把命令放在一起,批量执行

二、if 语句

2.1 单分支语句

格式:if 判断条件then命令语句fi

2.2 双分枝语句

格式:
if 判断条件
then
命令
else
命令
fi

实验1 

 实验2

 

2.3  多分枝语句

格式:
if 判断条件
then
命令
elif 判断条件2
then
命令
..........
else
命令
fi

 猜丁壳游戏

三、case分支语句

CASE 语句允许更清晰的脚本程序结构层次,常用于启动、重启或停止服务的脚本时,有些服务不提供此类控制脚本,您要编写 CASE 语句来编写。

case 语句主要用于以下情况:一个变量有多个值,需要对每个值执行不同的命令序列。这种情况与多分支 if 语句非常相似,只是 if 语句确定多个不同的条件,而 case 语句确定单个变量的不同值。

格式:
case $num in
条件判断1)
命令1
;;
条件判断2)
命令2
;;
条件判断3)
命令3
;;
........
*)
;;
echo " "
bash $0
;;
esac

 利用case做个简易的Linux菜单

 试试关闭防火墙

 关于 CASE 语句的说明

        必须以 "in "结束,每个模式必须以右括号") "结束。

        双分号";; "表示命令序列的结束。

        可以在模式字符串中使用方括号表示连续的范围,如"[0-9]",垂直条形符号"|"表示 "或",如 "A|B"。

        ==最后)表示默认模式,"*"相当于通配符 ===*。

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

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

相关文章

一键合并多个TXT文本,将保存在TXT的快递单号进行一键合并

如果你需要处理大量的TXT文本文件,那么你可能会遇到需要将这些文件合并为一个文件的情况。这不仅涉及到文件的组织和管理,还可能涉及到文件内容的连贯性和完整性。现在,我们有一个强大的工具,可以帮助你轻松实现一键文件整理&…

PCB抄板的一些方法

PCB抄板的技术实现过程简单来说,就是先将要抄板的电路板进行扫描,记录详细的元器件位置,然后将元器件拆下来做成物料清单(BOM)并安排物料采购,空板则扫描成图片经抄板软件处理还原成pcb板图文件&#xff0c…

私域电商模式全解析:掌握这些方法,让你的生意不再难做!

私域电商是指利用微信、QQ等社交平台将客户流量转化和沉淀,并促使其进行重复购买的电商模式。私域电商具备两个主要特点,分别是“私域”和“电商”。 “私域”指的是将客户添加为好友,并利用微信、QQ、微博等社交平台进行联系和营销的模式。…

智能座舱架构与芯片 - (1) 背景篇

一、软件定义汽车 1.1 什么是软件定义汽车 软件定义汽车(Software Defined Vehicles, SDV)的核心思想是,决定未来汽车的是人工智能为核心的软件技术,而不再是汽车的马力大小,是否真皮座椅,机械性能的好坏。软件定义汽车的终极目…

Servlet实现一个简单的表白墙网站

文章目录 前言效果展示事前准备HTML、CSS、JavaScript分别负责哪些HTML和CSS构架出页面的基本结构和样式JavaScript 实现行为和交互实现服务器端的业务代码整理pom.xmlweb.xmlmessageWall.htmlMessageServlet.java 前言 前面我们学习了 Java 中知名的 HTTP 服务器 tomcat 的安…

栈的生长方向不总是向下

据我了解,栈的生长方向向下,内存地址由高到低 测试 windows下: 符合上述情况 测试Linux下: 由此可见,栈在不同操作系统环境下,生长方向不总是向下

t检验(连续变量)和卡方检验(分类变量)

目录 情形 不同种类的萼片差异 数据类型查看: 差异分析: 不同萼片的种类差异 数据准备 二分类卡方检验 绘图 情形 :当有两列数据进行分析比较时,一列为连续变量,一列数据为分类变量。 rm(list ls()) libra…

智能交通收费RFID读写器在不停车收费(ETC)系统中的应用

随着公路收费规模的不断扩大,传统的人工收费效率低下,收费没有监督,导致票款流失严重甚至还有车辆非法逃票。为了解决这些问题,引入了RFID等多种技术的新型的收费系统-不停车收费(ETC)系统应运而生。 电子不停车收费系统(ETC)系统…

电商平台API接口的作用到底是什么?重要性又是什么?具体接入方式?

电商平台API接口的重要性及其作用主要体现在以下几个方面: 数据支持:电商平台拥有大量的商品信息、用户信息、交易信息等大数据资产,而API接口提供访问这些数据的途径,使得其他软件、应用、网站等可以利用这些数据提供更丰富的功…

设计模式篇---外观模式

文章目录 概念结构实例总结 概念 外观模式:为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式引入了一个新的外观类,它为多个业务类的调用提供了一个统一的入口。主要优点…

18张值得收藏的高清卫星影像

这里分享的18张高清卫星影像,由吉林一号卫星拍摄。 原图来自长光卫星嘉宾在直播中分享的PPT演示文档。 18张高清卫星影像 吉林一号高分04A星,于2022年05月21日拍摄的北京紫禁城高清卫星影像。 北京紫禁城 云南昆明滇池国际会展中心高清卫星影像&…

jQuery【回到顶部、Swiper轮播图、立即执行函数、链式调用、参数重载、jQuery扩展】(六)-全面详解(学习总结---从入门到深化)

目录 回到顶部 Swiper轮播图 jQuery源码_立即执行函数 jQuery源码_链式调用 jQuery源码_参数重载 jQuery扩展 回到顶部 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compati…

如何去阅读源码,我总结了18条心法

那么到底该如何去阅读源码呢&#xff1f;这里我总结了18条心法&#xff0c;助你修炼神功 学好JDK 身为一个Javaer&#xff0c;不论要不要阅读开源项目源码&#xff0c;都要学好JDK相关的技术。 所有的Java类开源项目&#xff0c;本质上其实就是利用JDK已有的类库和关键字实现…

这13个不经意却很不卫生的行为,很多人都没意识到

这13个不经意却很不卫生的行为&#xff0c;很多人都没意识到 北京崇文中方中医医院名医馆 2023-11-11 17:01 发表于北京 我们在生活中不经意间做出的一些动作&#xff0c;或者日常养成的一些行为习惯&#xff0c;正在悄悄伤害着我们的身体健康。可惜的是很多人都不知道这一点…

archery修改为不能自提自审核上线SQL

目录 背景修改代码效果参考 背景 我和同事都可以提交上线SQL&#xff0c;但是不能自己提交的SQL自己去审核通过。目前的情况是可以自提自审。 修改代码 找到/opt/archery/sql/utils/workflow_audit.py文件 ...省略...# 判断用户当前是否是可审核staticmethoddef can_revie…

VMware Workstation系列:Windows10 优化VMware虚拟机运行速度总结(单台、多台-ESXI)

Windows10 优化VMware虚拟机运行速度总结 一. 单台或两台同时运行前言&#xff1a;优化方法环境&#xff1a; 1、清除多余快照2、清理磁盘。3、虚拟机全局设置5、设置“优先级”6、设置“设备”7、编辑虚拟机设置8、分配合适的内存和CPU 二. 多台并行背景&#xff1a;一. 下载1…

【WiFI问题自助】解决WiFi能连上但是没有网的问题

WiFi能连上但是没有网的问题 背景&#xff1a;wifi能连上&#xff0c;但是没有网 解决 遇事不决&#xff0c;先重启啊&#xff01;怎么重启&#xff1f;拔掉电源再插上&#xff01;拔掉网线再插上&#xff01; 直接ok了。 思考记录 今天WiFi又上不了网了&#xff0c;昨天报…

【OpenCV实现图像:使用OpenCV进行图像处理之透视变换】

文章目录 概要计算公式举个栗子实际应用小结 概要 透视变换&#xff08;Perspective Transformation&#xff09;是一种图像处理中常用的变换手段&#xff0c;它用于将图像从一个视角映射到另一个视角&#xff0c;常被称为投影映射。透视变换可以用于矫正图像中的透视畸变&…

Jenkins 配置节点交换内存

查看交换内存 free -hswapon -s创建swap文件 dd if/dev/zero of/mnt/swap bs1M count1024启用交换文件 设置权限 chmod 600 /mnt/swap设置为交换空间 mkswap /mnt/swap启用交换 swapon /mnt/swap设置用户组 chown root:root /mnt/swap查看 swapon -s重启系统也能生效还需要修…

设计模式-行为型模式-模板方法模式

一、什么是模板模式 模板方法模式&#xff08;Template Method Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一个算法骨架&#xff0c;允许子类在不改变算法整体结构的情况下重新定义算法的某些步骤。 主要组成部分&#xff1a; 1、模板方法&#xff08;Templ…