if/case条件测试语句

一      条件测试

1.1返回码 $?

$? 返回码 用来哦按段命令或者脚本是否执行成功

0 true为真就是成功成立

非0 false 失败或者异常

1.2 test 命令

可以进行条件测试 然后根据返回值来判断条件是否成立

-e :exist 测试目录或者目录是否存在

-d :   directory 测试目录是否存在

-f  :   file 测试普通文件是否存在

-r  :   read 测试当前用户是否对文件/目录有读权限

-w :  write  测试写权限

-x  : execution 测试执行权限

1.3 比较符

1.3.1 整数比较符

注意 以下操作符只能用于整数比较

-eq  等于 equal

-ne  不等于 not equal

-gt  大于 greater than

-lt  小于  less than

-ge 大于等于 ge /eq

-le   小于等于 lt /eq不加

1.3.2类C语言得整数比较符

注意 以下操作符不能用于test比较

== :等于 既可以比较数字 也可以比较字符串

!=   :不等于

> 大于

<  小于

>= 大于等于

<= 小于等于

这种比较符一般用于比较变量或者字符串

1.3.3 比较符格式

[ ]:  注意格式 所有参数和符号都要以空格隔开

[[ ]] 可以使用更高级得模式 可以使用正则表达式 而且在双中括号中使用字符串得时候可以不加引号而不用担心引起歧义

(()):只能使用算数比较符 (运算)

1.3.4 逻辑与和逻辑或

与: &&或者-a 条件都满足才成立

或|| 或者-o 满足一个条件即可成立

-a -o 只能在[   ] 中使用  [[   ]]中或者两个[ ]之间只能使用 && ||

二   if语句

2.1 if语句得基本组成

if  后面是条件测试语句 

then  后面跟命令序列 只有条件测试语句成立 才会执行then得命令模块

elif  后面是条件测试语句 用于多分支结构

else  后面跟命令序列  所有得条件测试语句均不满足时 执行else得命令模块

fi 结束语句

2.2 单分支结构

在/opt目录下创建t1.sh

if 条件满足才执行then

2.2 双分支结构

要求 比较两个整数得大小

在/opt目录下创建1.sh

if条件满足执行 then

if条件不满足执行else

2.3 多分支结构

要求输入考试成绩 根据输入内容返回结果

100分:天才  85-99 :优秀 60-84 合格 60分以下不合格

在/opt目录下创t3.sh

if条件满足执行then

若if条件不满足 来到第一个elif 条件满足执行then

若第一个elif 条件不满足 来到下一个elif 条件满足执行then

若if elif都不满足 执行else下得命令

2.4 嵌套if结构

要求 检查用户家目录中得test.sh 文件是否存在 并且检查是否有执行权限

在/otp目录下创建t4.sh

说明:嵌套if语句中,下一层if的条件测试是建立在上一层if的条件测试结果的前提下的。注意每一层if都有对应的fi结束语句

三  case语句

case相当于if多分枝结构

格式

例:要求:用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录,分别使用tar -zxvftar -jxvf

t5.sh:用位置变量传参的方式

练习  

通过位置变量传参的方式,给脚本内部传一个ip地址

用if判断主机是否存活,若存活提示用户ip is online,而且要保存到/opt/hosts.txt文件,若主机无连接,提示用户 ip is offline

使用ping -c 5 检测连通性,但不显示ping的过程

test1.sh

第一行的解释:&> /dev/null,将前面ping的输出结果全部重定向到/dev/null/dev/null 有一个非常有用的特性:它会立即丢弃所有写入它的数据,也被称为“数据黑洞”。这样将ping的结果重定向到/dev/null,就不会在终端上显示。

检验:

二 

提示用户输入内容,使用if 语句判断输入的内容是否为整数。判断范围0-100。然后再判断输入的内容是奇数还是偶数。

提示:判断输入的内容是否为整数,可以用

-eq是整数比较符,如果变量不是整数,比如小数或者字符串会报错,并跳转到else执行,把报错信息重定向到/dev/null就不会在终端显示多余的信息。

实现:test2.sh

对检验奇数偶数的解释: $(($num%2)),对变量除以2取余数,余数为0则为偶数,余数为1则为奇数。

验证:


提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,
大于10秒的都淘汰,
如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别。
男生进男生组,女生进女生组,如果输入错误请提示错误(整数判断,小数判断。)

检验 

如果要实现小数判断,可以用bc实现,比如:

把两个小数变量比较的结果保存到result中,再用if语句对result进行判断,请自行探索。

用case语句控制 firewalld start|stop|restart|status 来管理firewalld服务,要求如果命令选项不对,则提示输入不正确:{start|stop|status|restart}

test4.sh:用传参的方式

检验:

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

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

相关文章

多目标跟踪 (MOT) 算法简介

据说即将开始的欧洲杯将会采用VAR来辅助裁判执法&#xff0c;这无疑将成为本届赛事的一大亮点。VAR&#xff0c;即视频助理裁判&#xff0c;是指在足球比赛中&#xff0c;裁判可以通过视频回放来辅助做出判罚。自2017年国际足联正式将VAR引入足球比赛以来&#xff0c;它已经在世…

【产品经理】订单处理6-审单方案

电商系统中订单管理员会对特殊类型的订单进行审核&#xff0c;普通订单则自动审核&#xff0c;本节讲述自动审单方案、手动审单以及加急审单。 一、自动审单 自动审单方案可按照方案形式制定&#xff0c;可一次性制定多套审单方案。 1. 审单通过条件有 执行店铺&#xff…

同三维T80006EHL-4K30CN 单路4K30 HDMI编码器(全国产化)

同三维T80006EHL-4K30CN 单路4K30 HDMI编码器 带1路HDMI环出和1路3.5音频输入&#xff0c;支持4K30&#xff0c;所有元器件全国产 一、 产品简介&#xff1a; T80006EHL-4K30CN 4K编码器&#xff08;采集盒&#xff09;是一款全国产化的专业4K HDMI音视频编码产品&#xff0c;…

2024年先进机械电子、电气工程与自动化国际学术会议(ICAMEEA 2024)

2024年先进机械电子、电气工程与自动化国际学术会议(ICAMEEA 2024) 2024 International Conference on Advanced Mechatronic, Electrical Engineering and Automation 会议地点&#xff1a;杭州&#xff0c;中国 网址&#xff1a;www.icameea.com 邮箱: icameeasub-conf.c…

大型ERP设计-业务与功能指引:外币折算与辅助账套

外币折算与辅助账套 前言&#xff1a;在对ORACLE和SAP的核心模块功能全面解读的基础上&#xff0c;给出大型ERP设计的建议-业务与功能指引&#xff0c;企业选型、开发大型ERP软件的公司和ERP顾问可以参考。模块包括财务、计划与制造、供应链、项目及设备(MRO)&#xff0c;初步预…

5.How Fast Should You Be When Learning?(你应该用多快的速度学习?)

Normally when I talk about learing quickly, I’m using speed as a synonym for efficiency.Use more effective methods and you’ll learn more in less time.All else being equal, that means you’re learing faster. 通常我在谈到快速学习时&#xff0c;是把“速度&qu…

【HarmonyOS NEXT 】鸿蒙detectBarcode (图像识码)

本模块提供本地图片识码和图像数据识码能力&#xff0c;支持对图像中的条形码、二维码、多功能码进行识别&#xff0c;并获得码类型、码值、码位置信息。 起始版本&#xff1a;4.1.0(11) 导入模块 import { detectBarcode } from kit.ScanKit; InputImage 待识别的图片信息…

【自记录】记一台i7四代老爷笔记本重装Win10 22H2

1 背景 手上有一台退役的老爷笔记本&#xff0c;清华同方锋锐 U430。因为比较轻便&#xff0c;最近重新翻出来用于临时抓个包和简单的脚本语言&#xff08;比方说Python&#xff09;编辑工作。但是现在像VSCode的新版本都要求Win10以上&#xff0c;像Continue这类的AI插件都跑…

ssh-add id_rsa_gitlab1 Error connecting to agent: No such file or directory

ssh-add id_rsa_gitlab1 Error connecting to agent: No such file or directory 目录 ssh-add id_rsa_gitlab1 Error connecting to agent: No such file or directory1. 启动 SSH 代理2. 添加 SSH 密钥3. 使用 Git Bash 或其他终端4. 使用 Pageant&#xff08;适用于 PuTTY 用…

基于DDD的编码实践

分层设计 领域驱动设计&#xff08;Domain-driven design, DDD&#xff09; 作为一种复杂软件系统的应对方案&#xff0c;在设计和编码提供了一种新的解决方式&#xff0c;即领域驱动&#xff0c;要求程序员在设计和编码时从领域专家的角度出发来实现架构/代码&#xff0c;做到…

工作随机:oracle集群下的vip intermediate,failed over处理

文章目录 前言一、问题排查二、恢复db2使用1.确认db2 vip状态2.恢复db2 的vip3.检查监听&#xff1a; 前言 在对数据库进行巡检发现&#xff0c;集群中一个节点的备份没有执行&#xff0c;未生成当天的任何日志&#xff0c;查询/var/spool/oracle 信息发现提示&#xff1a;no …

经验分享,在线文本比较工具

这里分享一个在线文本比较工具&#xff0c;打开网页即用&#xff0c;很方便 网址&#xff1a; https://www.jq22.com/textDifference 截图&#xff1a;

Python语言在地球科学交叉领域中的实践技术融合应用

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;Python能够运行在Linux、Windows、Macintosh、AIX操作系统上及不同平台&#xff08;x86和arm&#xff09;&#xff0c;Python简洁的语法和对动态输入的支持&#xff0c;再加上解释性语言的本质&…

PHP表单设计:确保必需字段完整性的最佳实践

在开发网页应用程序时&#xff0c;设计一个具有必需字段的PHP表单是至关重要的。必需字段是用户提交表单时必须填写的信息&#xff0c;它们对于确保数据完整性和准确性至关重要。本文将从多个方面讨论如何在PHP表单中设计必需字段&#xff0c;并探讨确保表单数据完整性的最佳实…

代码审计中XSS挖掘一些体会

0x01 XSS的挖掘思路 1.1 反射型 直接搜索 echo print_r print之类的函数即可 也可以寻找$_GET变量来判断是否存在输出&#xff08;不过对于代码审计来说除非实在挖不出漏洞&#xff0c;否则没必要关注反射xss&#xff09; 1.2 dom型 和反射型差不多 需要看网站的前端javascr…

openGauss 6.0一主二备高可用架构部署,可靠很行

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复&#xff0c; 安装迁移&#xff0c;性能优化、故障…

MySQL JDBC驱动包引入有版本要求吗

提示&#xff1a;有关数据库的任何操作&#xff0c;请事先都做好备份&#xff0c;一定不会错的&#xff1b; 文章目录 前言一、com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver如何选择&#xff1f;1、概念2、引入驱动3、总结 前言 新老项目的交替中&#xff0c;如果你使用的…

【并发编程实战】内存模型--解决可见性和有序性的利器

一.前言 在前面讲了三个问题&#xff0c; 缓存导致的可见性问题&#xff0c;编译优化带来的有序性问题&#xff0c;线程切换带来的原子性问题。既然存在问题&#xff0c;那么总要有解决方案的&#xff0c;这一章里主要就是解决这三个问题的关键点--内存模型 二.内存模型 2.1 …

Python 使用 Thick 方式连接 Oracle Database BaseDB 23ai

Python 使用 Thick 方式连接 Oracle Database BaseDB 23ai 1. 下载Basic.zip 和SQL*Plus&#xff08;.zip&#xff09;2. 配置环境变量3. 连接 23ai 1. 下载Basic.zip 和SQL*Plus&#xff08;.zip&#xff09; 到 https://www.oracle.com/database/technologies/instant-clien…

hdfs高可用文件系统架构

1、整体架构 2、角色简介 2.1、namenode NameNode 是 HDFS 集群中的核心组件&#xff0c;负责管理文件系统的元数据、处理客户端请求、管理数据块、确保数据完整性和高可用性。由于其重要性&#xff0c;NameNode 的性能和可靠性直接影响整个 HDFS 集群的性能和可靠性。在生产…