shell脚本条件测试

news2024/11/30 6:34:36

条件测试

$? 返回码

判断命令或者脚本是否执行成功(最近的一条)

0 ture 为真就是成功 成立

非0 false 失败或者异常

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

test -e 测试目录和文件是否存在 exist

test -d 只能测试目录是否存在

test -f 只能测试文件是否存在

test -r 测试当前用户是否对文件或者目录有读权限

test -w 测试当前用户是否对文件或者目录有写权限

test -x 测试当前用户是否对文件或者目录有执行权限、

整数比较符(以下操作符只能用于整数比较)

-eq 等于 == 既可以比较整数,也可以比较字符串

-ne 不等于 !=

-gt 大于 >

-lt 小于 <

-ge 大于等于 >=

-le 小于等于 <=

整数比较符的第二种

[ ]

整数比较符第三种

[[ ]] 可以使用更高级的模式,可以使用正则表达式,而且在双括号当中,使用字符串的时候可以不加引号

[ ] 歧义

整数比较符第四种

(()) 运算符

逻辑与和逻辑或

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

[ $a -ne 1] && [ $a -ne 2 ]

[ $a -ne 1 -a $a -ne 2 ]

或 || 条件有一个满足就成立 -o

[[]] 双括号中间有多个条件只能有&&,||符号隔开

在这里插入图片描述

if语句

单分支结构

if 后面是条件测试语句

then 命令序列,只有条件测试语句成立,才会执行then的命令模块

fi 结束语句

if [ 3 -gt 2 ]
then
 echo "ok"
fi

双分支结构

if [ 3 -gt 4 ]
then
 echo "ok"
else
 echo “no”
fi

条件满足执行then,不满足执行else,执行完毕,语句结束

多分支结构

if []
then
 	命令序列
 elif []
 then
 	命令序列
 elif []
 then
	命令序列
else
	命令序列
fi
read -p "请输入一个整数:" num
if [ $num -gt 10 ]
then
 echo "1"
elif [ $num -gt 20 ]
then
 echo "2"
else
 echo "3"
fi
#请输入您的分数,0-100
大于等于85,且小于等于100 优秀
大于等于70,且小于等于84 一般
大于等于60,且小于等于69 合格
小于60,30遍

read -p "请输入你的分数:" num
if [ $num -ge 85 -a $num -le 100 ]
then
 echo "优秀"
elif [ $num -ge 70 -a $num -le 84 ]
then
 echo "一般"
elif [ $num -ge 60 -a $num -le 69 ]
then
 echo "合格"
else
 echo "抄30遍"
fi

嵌套

#num自定义输入,只有整数才可以进入分数的取件
read -p "请输入你的分数:" num
if [[ $num -eq $num ]] &> /dev/null
then
        if [ $num -ge 85 -a $num -le 100 ]
        then
        echo "优秀"
        elif [ $num -ge 70 -a $num -le 84 ]
        then
         echo "一般"
        elif [ $num -ge 60 -a $num -le 69 ]
        then
         echo "合格"
        else
         echo "抄30遍"
        fi
else
 echo "输入的不是整数"
fi

case语句

相当于多分支结构

case 变量值 in

模式1)

命令序列

;;

模式2)

命令序列

;;

*)

命令序列

esac

#num自定义输入,只有整数才可以进入分数的取件
read -p "请输入你的分数:" num
[[ $num -ge 80 && $num -le 100 ]] && a="great"
[[ $num -ge 70 && $num -le 79 ]] && a="standard"
[[ $num -ge 60 && $num -le 69 ]] && a="false"

case $a in
great)
 echo "$num分,优秀"
;;
standard)
 echo "$num分,一般"
;;
false)
 echo "$num分,不及格"
;;
*)
 echo "不及格"
esac

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

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

相关文章

PS系统教程19

渐变与照片调色 增加色彩背景新建图层选好渐变拉选图片渐变 与图层模式结合 也可以变换颜色 看起来比较自然&#xff0c;因为是与人物结合起来 也可以选择系统里面的一些色调 可以进行多次调试

m4a怎么转换成m4r格式?

之前给大家分享过“m4a转mp3”教程文章&#xff0c;今天继续分享有关m4a的格式转换方法。想必大家对m4a格式已经了解的差不多了&#xff0c;苹果手机的专属格式。那么大家知道m4r格式吗? 从名字就可以看出来&#xff0c;它和m4a格式肯定有着密切的联系和相似点。m4r是iPhone铃…

知识付费平台功能模块详解

知识付费平台作为一种新兴的在线教育模式&#xff0c;以其用户需求导向的设计理念和便捷高效的学习方式&#xff0c;受到了广泛欢迎。这类平台汇集了职业技能、生活兴趣和人文社科等多领域的专业知识&#xff0c;并通过视频播放、在线问答、作业批改等工具和服务&#xff0c;助…

python的%time 、%%time 、%timeit、%%timeit的区别

%time 、%timeit 要在ipython下才可以使用。(所以说Jupyter Notebook当然是可以用的,pycharm里的python环境也是jupyter Notebook的) %time可以测量一行代码执行的时间 %timeit可以测量一行代码多次执行的时间 网上有说法说,%timeit是测量一行代码100000次循环内,3次最快速…

【沈阳航空航天大学主办|往届已实现EI检索】第二届智能通信与网络国际学术会议(ICN 2024)

第二届智能通信与网络国际学术会议&#xff08;ICN 2024&#xff09; The 2nd International Conference on Intelligent Communication and Networking 一、重要信息 大会官网&#xff1a;www.ic-icn.org (点击参会/投稿/了解会议详情&#xff09; 大会时间&#xff1a;2…

【扫码点餐系统】制作搭建部署

前言&#xff1a; 餐饮类做一个扫码点餐的工具可以提升用户体验、扩大市场份额、提高运营效率以及适应数字化趋势等方面。 一、企业开发小程序原因 企业开发小程序具有多方面的优势&#xff0c;可以帮助企业提升用户体验、扩大市场份额、提高运营效率以及适应数字化趋势等。…

如何导出数据库中数据表或查询结果的数据:支持大数据量(以MySQL和SQLynx为例)

MySQL的数据导出是一个操作非常频繁的任务&#xff0c;也是数据的存储和传输比较重要的一种方式&#xff0c;本文主要以SQLynx为例来介绍MySQL的数据如何导出。 目录 1 操作步骤 步骤 1&#xff1a;登录SQLynx 步骤 2&#xff1a;选择数据库和表 步骤 3&#xff1a;执行查询…

如何设置EVM/IMA密钥即如何生成签名密钥和证书

为生成和使用签名密钥来配置 IMA&#xff0c;以下是详细步骤&#xff0c;包括如何生成签名密钥和证书。 1. 生成签名密钥和证书 首先&#xff0c;我们需要一个私钥和一个自签名证书。我们将使用 OpenSSL 来生成这些密钥和证书。 生成私钥 openssl genpkey -algorithm RSA -…

RabbitMQ 见解一

1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得到响应&#xff0c;…

各省环保税税额一览表数据

各省环保税税额一览表数据 1、指标&#xff1a;地区、税目、税率&#xff08;元/污染当量&#xff09;、依据 2、范围&#xff1a;27个省&#xff08;不含西藏、贵州、青海、陕西&#xff09; 3、来源&#xff1a;主要基于人大常委会的会议决定&#xff0c;涵盖了各类污染税…

第一个Vue3.0应用程序

Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0c;Vue 都可以胜任。 1、准备工作 工欲善其事&#…

鸿蒙轻内核A核源码分析系列五 虚实映射(2)虚实映射初始化

2、 虚拟映射初始化 在文件kernel/base/vm/los_vm_boot.c中的系统内存初始化函数OsSysMemInit()会调用虚实映射初始化函数OsInitMappingStartUp()。该函数代码定义在文件arch/arm/arm/src/los_arch_mmu.c&#xff0c;代码如下。⑴处函数使TLB失效&#xff0c;清理虚实映射缓存…

接口自动化测试框架-fixture函数使用

前言 setup和teardown能实现在测试用例执行之前或之后做一些操作&#xff0c;但是这种是整个测试脚本全局生效的&#xff1b; 如果想实现某些用例执行之前进行登录&#xff0c;某些用例执行之前不需要进行登录&#xff0c;这种场景我们再使用setup和teardown就无法实现了&…

AIOps实现的简单途径

AIOps需要大模型的支持&#xff0c;但是训练一个业务专用的大模型并不是一件理想的任务&#xff0c;所以利用开源的通用大模型才是王道。 我们可以利用AI大模型的理解能力来帮助分析和解释Kubernetes&#xff08;K8s&#xff09;的日志。通过提供日志中可能存在问题的部分&…

莱佛士设计学院师生参观白鹅潭大湾区艺术中心

莱佛士设计学院一直秉持着&#xff0c;不将“学习”局限在课堂或学校的原则。 为了让学生收集“主要课题研究”这门课程的图像和灵感。近日&#xff0c;莱佛士设计学院的Ricky老师带领学生们一起参观白鹅潭大湾区艺术中心。 白鹅潭大湾区艺术中心&#xff0c;这座集广东美术馆…

【HarmonyOS】鸿蒙入门学习

一、开发前的准备 &#xff08;一&#xff09;HarmonyOS 开发套件介绍 &#xff08;二&#xff09;开发者主要使用的核心套件 主要为代码开发阶段会使用到的 DevEco Studio、ArkTS、ArkUI三个工具。 &#xff08;三&#xff09;熟悉鸿蒙官网 1、网址 https://developer.hua…

本地生活服务电商平台小程序源码系统 含完整的安装代码包+搭建教程

系统概述 本地生活服务电商平台小程序源码系统&#xff0c;是一款集成了商品展示、在线交易、服务预约、优惠券发放、会员管理、订单处理、即时通讯等多种功能于一体的综合性解决方案。它旨在为本地商家提供一个高效、便捷的线上经营平台&#xff0c;同时为消费者带来流畅的使…

C++ 中的负无穷大赋值

1&#xff0c;代码先行 示例&#xff1a; #include<iostream> #include<limits>using namespace std;int main() {float inf_pos numeric_limits<float>::infinity();float inf_neg -1*inf_pos;cout << "inf_pos " << inf_pos &l…

Windows系统下CUDA、cuDNN与PyTorch的更新与安装全攻略

Windows系统下CUDA、cuDNN与PyTorch的更新与安装全攻略 文章目录 Windows系统下CUDA、cuDNN与PyTorch的更新与安装全攻略一、引言二、CUDA、cuDNN与PyTorch-GPU介绍三、安装准备1. 查看支持的CUDA版本2. 查看已安装的CUDA版本3. 查看支持的PyTorch版本 四、卸载旧版CUDA五、下载…

【企业家必看】解锁财富新机遇:二人订单共享模式

在这个充满变革与创新的时代&#xff0c;我们有幸向您介绍一种全新的商业模式——二人订单共享模式。这不仅是一次商业创新&#xff0c;更是一次财富与价值共享的革命。 终身消费&#xff0c;终身收益 只需一次499元的终身消费&#xff0c;您即可成为会员。这意味着&#xff0…