shell编程之条件语句(shell脚本)
条件测试操作
要使shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。例如,当磁盘使用率超过95%时,发送告警信息;当备份目录不存在时,能够自动创建;当源码编译程序时,若配置失败则不再继续安装等。
shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0时表示成功,否则(非0值)表示失败或异常。使用专门的测试工具——test命令,可以来特定条件进行测试,并根据返回值来判断条件是否成立(返回值为0表示条件成立)。
根据需要测试的条件类别不同,条件表达式也不同。比较常用的条件操作包括文件测试,真数值比较,字符串比较,以及针对多个条件的逻辑测试。
文件测试
文件测试指的是根据给定的路径名称,判断对应的是文件还是目录,或则判断文件是否可读,可写,可执行等。文件测试的常用操作选型如下,使用时将测试对方放在操作选项之后即可。
-d:测试是否为目录(Directory)
-e:测试目录或文件是否存在(Exist)
-f:测试是否为文件(File)
-r:测试当前用户是否有执行读取(Read)
-w:测试当前用户是否有权限吸入(Write)
-x:测试是否设置有可执行(Excute)权限
执行条件测试操作以后,通过预定义变量$?可以获得测试命令的返回状态值,从而判断该条件是否成立。例如,执行以下操作可测试目录/media/是否存在,如果返回值$?为0,表示存在此目录,否则表示不存在或则存在但不是目录。
【-d /media/】
echo $? (查看前一命令的返回值)
0 (返回0表示条件成立)
若测试的条件不成立,则测试操作的返回值将不为0(通常为1)。例如,执行以下操作展示了测试不存在目录的情况。
{-d /media/cdrom/server}
echo $? (查看前一命令的返回值)
1 (返回1表示条件不成立)
通过查看变量$?的值可以判断前一步的条件测试结果,但是操作比较烦琐,输出结果也并不是很直观。为了更直观地查看测试结果,可以结合命令分隔符“&&”和echo命令一起使用,当条件成立时直接输出“YES”。其中,“&&”符号表示“而且”的关系,只有当前面的命令执行成功后才会执行后面的命令,否则后面的命令将会被忽略。例如,上述目录测试操作可以改写如下。
{-d /media/cdrom/server}&&echo 无输出表示该目录不存在
{-d /media/cdrom}&&echo 输出“YES”表示该目录存在
YES
整数值比较:
整数值比较的是根据给定的两个整数值,判断第一个数与第二个数的关系,如是否大于,等于,小于第二个数。整数值比较的常用操作选项如下,使用时将操作选型放在要比较的两个整数之间。
-eq:第一个数等于(Equal)第二个数。
-ne:第一个数不等于(Not Equal)第二个数。 等效于(!=)
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
shell编程之条件语句(shell脚本)
条件测试操作 要使shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。例如,当磁盘使用率超过95%时,发送告警信息;当备份目录不存在时,能够自动创建;当源码编译程序时,若配置失败则不再继续安装等。 shell环境根据命令执行后…...
![](https://www.ngui.cc/images/no-images.jpg)
QT中QSettings的使用系列之二:保存和恢复应用程序主窗口
1、核心代码 #include "widget.h" #include "ui_widget.h" #include <QSettings> #include <QDebug> #include <QColo...
![](https://www.ngui.cc/images/no-images.jpg)
Linux系统上安装Miniconda并安装特定版本的Python
要在Linux系统上安装Miniconda并安装特定版本的Python(例如3.10.12),请按照以下步骤进行操作: 1. 下载并安装Miniconda 下载Miniconda安装脚本: 使用wget或curl下载Miniconda安装脚本。以下是使用wget的命令ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
解决Qt中 -lGL无法找到的问题
在使用Qt Creator创建并编译新项目时,可能会遇到以下错误: /usr/bin/ld: cannot find -lGL collect2: error: ld returned 1 exit status make: *** [untitled1] Error 1 18:07:41: The process "/usr/bin/make" exited with code 2. Error w…...
![](https://www.ngui.cc/images/no-images.jpg)
【重要】《HTML趣味编程》专栏内资源的下载链接
目录 关于专栏 博主简介 专栏内资源的下载链接 写在后面 关于专栏 本专栏将持续更新,至少含有30个案例,后续随着案例的增加可能会涨价,欢迎大家尽早订阅!(订阅后可查看专栏内所有文章,并且可以下载专栏内的所有资源) 博主简介 ⭐ 2024年百度文心智能体大赛 Top1⭐…...
![](https://img-blog.csdnimg.cn/direct/4382cd5f45d14897a79e3ceccf10fbcf.png)
苍穹外卖环境搭建
一、前端环境搭建 ①整体结构 ②前端工程基于nginx运行 启动nginx:双击 nginx.exe 即可启动 nginx 服务,访问端口号为 80 进入浏览器地址输入locallhost回车 二、后端环境搭建 后端初始工程基于maven进行项目构建,并且进行分模块开发 (1) idea打开初始…...
![](https://img-blog.csdnimg.cn/direct/1a29efdd825e4397a39a2586141891cb.jpeg)
切割游戏介绍
简介 上大学时,在学校实验室里玩过一个貌似使用VC写的小游戏,一个小球在界面上四处游荡,玩家使用鼠标切割背景,将背景切割剩余到一定的百分比后,就胜利了,后边的背景图会全部展示出来。 使用qt的qml技术&a…...
![](https://www.ngui.cc/images/no-images.jpg)
对接Paypal、Stripe支付简单流程
一、Stripe卡支付简单流程: #mermaid-svg-bZxQh1bt4Z8agjJg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bZxQh1bt4Z8agjJg .error-icon{fill:#552222;}#mermaid-svg-bZxQh1bt4Z8agjJg .error-text{fi…...
![](https://img-blog.csdnimg.cn/direct/f4ae71d4309c4c4897f61be08da6fa51.png)
微服务中不同服务使用openfeign 相互调用
首先 我们上文 已经知道了 nacos 的注册服务,现在 我们 在不同服务中相互调用就可以使用openfeign 直接调用,而不是 再写冗余的调用代码啦 首先 我们的微服务组件如下 因为我这个微服务是我在 员工登录demo 中 拆出来的,在userlogin模块中…...
![](https://img-blog.csdnimg.cn/img_convert/90c64d351ffa83e36e0130d81a8cd605.png)
社区项目-项目介绍环境搭建
文章目录 1.技术选型2.原型设计1.安装AxureRP2.进行汉化3.载入元件库4.基本设计 3.元数建模1.安装元数建模软件2.新建项目3.新增一个刷题模块主题域4.新增数据表 subject_category5.新增关系图,将表拖过来6.新增题目标签表7.新增题目信息表8.新增单选表、多选表、判…...
![](https://img-blog.csdnimg.cn/direct/43c819ae39b540a09df8fc39b0531d21.png)
【论文阅读】-- Omnisketch:高效的多维任意谓词高速流分析
Omnisketch:高效的多维任意谓词高速流分析 摘要1 引言2 预备知识及相关工作3 OMNISKETCH:使用任意谓词估计频率3.1 Sketch S0:Count-Min with rid-sets 用于估计带有谓词的查询3.2 Sketch S1 (OmniSketch):…...
![](https://www.ngui.cc/images/no-images.jpg)
【ajax核心03】封装底层axios函数
目录 一:步骤总结 二:获取数据需求: 三:查找数据需求: 四:发送数据需求: 一:步骤总结 定义myAxios函数,接收配置对象,返回Promise对象发送XHR请求&#…...
![](https://www.ngui.cc/images/no-images.jpg)
python科学计算
文章目录 一、科学计算介绍二、NumPy2.1、NumPy是什么2.2、NumPy使用场景2.3、NumPy特点2.4、NumPy如何使用 三、数组3.1、数组介绍3.2、创建数组3.3、数组的大小3.4、通过索引访问数组3.5、变换数组的形态3.6、常用的ufunc运算 一、科学计算介绍 python语言提供了array模块&am…...
![](https://img-blog.csdnimg.cn/direct/1b927261106441a98b91a2e1e49301ee.png)
Leetcode - 132双周赛
目录 一、3174. 清除数字 二、3175. 找到连续赢 K 场比赛的第一位玩家 三、3176. 求出最长好子序列 I 四、3177. 求出最长好子序列 II 一、3174. 清除数字 本题可以使用栈来模拟,遇到数字弹出栈顶元素,遇到字母入栈。 代码如下: //使用字…...
![](https://img-blog.csdnimg.cn/img_convert/e68b84bd01aeeba2df3ec27a213d6a28.jpeg)
Mongodb在UPDATE操作中使用$push向数组中插入数据
学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第69篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…...
![](https://www.ngui.cc/images/no-images.jpg)
ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 锐化效果
ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 锐化效果 核心代码完整代码在线示例ArcGIS Maps SDK for JavaScript 从 4.29 开始增加 RenderNode 类,可以添加数据以及操作 FBO(ManagedFBO); 通过操作 FBO,可以通过后处理实现很多效果,官方提供了几个示例,…...
![](https://img-blog.csdnimg.cn/direct/da8b2557d3154226a75f92efe63c5037.png)
信息系统项目管理师 | 信息系统安全技术
关注WX:CodingTechWork 信息安全概念 安全属性 秘密性:信息不被未授权者知晓。完整性:信息是正确的、真实的、未被篡改的、完整无缺。可用性:信息可以随时正常使用。 安全分层 设备安全 设备的稳定性:在一定时间…...
![](https://img-blog.csdnimg.cn/direct/c5ddaa8e64d64dd79e5a2a0c8a88fd0c.png)
Java数据类型与运算符
1. 变量和类型 变量指的是程序运行时可变的量,相当于开辟一块空间来保存一些数据。 类型则是对变量的种类进行了划分,不同类型的变量具有不同的特性。 1.1 整型变量(重点) 基本语法格式: int 变量名 初始值;代码示…...
![](https://img-blog.csdnimg.cn/direct/ea0b45cad5eb477ba316b2b093632879.png)
网络虚拟化考题
vrrp讲过吗??? d 每一层都是什么设备啊 abcd 为啥流量不可控不可视 c是啥意思 讲过吗 abc aNET网络虚拟化是啥啊 为啥?? 啥是CDN?????...
![](https://img-blog.csdnimg.cn/direct/5b7d95e28190463881fcf3b99c544145.jpeg)
《C++ Primer》导学系列:第 7 章 - 类
7.1 定义抽象数据类型 7.1.1 类的基本概念 在C中,类是用户定义的类型,提供了一种将数据和操作这些数据的函数(成员函数)组合在一起的方法。类定义了对象的属性和行为,通过实例化类来创建对象。 7.1.2 定义类 定义类…...
![](https://img-blog.csdnimg.cn/direct/6d88fdfc090345019f08e781eeacc3bd.png)
idea intellij 2023打开微服务项目部分module未在左侧项目目录展示(如何重新自动加载所有maven项目model)
项目场景: springcloud微服务项目,部分模块暂时不需要用到,就在pom.xml文件中注释掉相应的模块,突然有一天打开项目,部分项目module 在idea intellij工具左侧文件夹找不到了,重新file->open本地项目也还是部分模块…...
![](https://www.ngui.cc/images/no-images.jpg)
生成视频 zeroscope_v2_576w 学习笔记
目录 生成视频代码: 维度报错: 解决方法,修改代码: 已开源: 视频生成模型 Zeroscope开源 免费无水印 视频生成模型 Zeroscope_v2_576w 开源 - 腾讯云开发者社区-腾讯云 生成视频代码: import torch fro…...
![](https://img-blog.csdnimg.cn/direct/8e1d3ac96a6c4d669dd442d776a5cc81.png)
H3C综合实验
实验拓扑 实验要求 1、按照图示配置IP地址 2、sw1和sw2之间的直连链路配置链路聚合 3、 公司内部业务网段为VLAN10和VLAN20; VLAN 10是市场部,vlan20是技术部,要求对VLAN进行命名以便识别;PC1属于vlan10,PC2属于vlan20…...
![](https://img-blog.csdnimg.cn/direct/a45b34831d4944a6957e90ec91ed8b9e.png)
QThread 与QObject::moveToThread在UI中的应用
1. QThread的两种用法 第一种用法就是继承QThread,然后覆写 virtual void run(), 这种用法的缺点是不能利用信号槽机制。 第二种用法就是创建一个线程,创建一个对象,再将对象moveToThread, 这种可以充分利用信号槽机制ÿ…...
![](https://img-blog.csdnimg.cn/direct/a5d7314c2b8f4308ace5c220d29d5c40.png#pic_center)
安卓逆向案例——X酷APP逆向分析
X酷APP逆向分析 这里介绍一下两种不同的挂载证书的方法。 chls.pro/ssl无法在浏览器中下载证书是什么原因解决方法: 法一 1. 挂载系统分区为读写 使用正确的挂载点来挂载系统分区为读写: su mount -o remount,rw /dev/uijISjR/.magisk/block/syste…...
![](https://img-blog.csdnimg.cn/img_convert/a9f46b32282bd25e6b5e98864395afe1.jpeg)
创新案例|星巴克中国市场创新之路: 2025目标9000家店的挑战与策略
星巴克创始人霍华德舒尔茨:“为迎接中国市场的全面消费复苏,星巴克2025年推进9000家门店计划,将外卖、电商以及家享和外出场景咖啡业务纳入中国新一轮增长计划中。”在面临中国市场同店增长大幅下滑29%背景下,星巴克通过DTC用户体…...
![](https://img-blog.csdnimg.cn/direct/815c0379cadd453d9c95c7ac06fd5749.png)
计算机网络 MAC地址表管理
一、理论知识 1.MAC地址表:交换机使用MAC地址表来记录各MAC地址对应的端口,用于帧转发的目的。 2.老化机制:交换机会为每一条MAC地址表项设置老化时间,老化时间到期后未收到该MAC地址报文的表项将被删除,释放资源。 …...
![](https://img-blog.csdnimg.cn/direct/ced93e87e220406b9f8cb743d4de7b31.png)
【免费API推荐】:各类API资源免费获取【11】
欢迎来到各类API资源的免费获取世界!幂简集成为您提供了一个集合了各种免费API接口的平台。无论您是开发者、数据分析师还是创业者,都可以通过我们的平台轻松免费获取所需的API资源。幂简精心整理了各类API接口,涵盖了不同领域的需求…...
![](https://img-blog.csdnimg.cn/direct/8dc74110da084e01beb12d4a892d9fab.png)
技术驱动会展:展位导航系统的架构与实现
随着会展行业的快速发展,大型会展中心面临着如何提升参展者体验、提高招商效率的挑战。针对客户反馈的展馆面积大、展位查找困难等问题,维小帮提出一套智慧会展导航解决方案,旨在通过先进的室内导航技术提升会展中心的运营效率和参展者的满意…...
![](https://img-blog.csdnimg.cn/img_convert/66d20db3669ebdae9eda8005bf070317.jpeg)
适用于轨道交通专用的板卡式网管型工业以太网交换机
是网管型 CompactPCI板卡式冗余环网交换机。前面板带有6个 10/100/1000Base-T(X)M12接口。后面的CPCI接口有 8个10/100/1000Base-T (X) 以太网接口。 是特别为轨道交通行业EN50155标准要求而设计的坚固型交换机。它同时具有以下特性: ● 支持2线以太网距离扩展端口&…...
![](/images/no-images.jpg)
山东聊城做网站/网站关键词排名查询
双缓冲法解决重绘和闪屏问题参考文章: (1)双缓冲法解决重绘和闪屏问题 (2)https://www.cnblogs.com/renyuan/p/3474802.html 备忘一下。...
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
招标网站开发/邯郸今日头条最新消息
UVA340 UVA10420 时间有点久远,很早之前写的,然后忘记总结了,这道题其实很容易,一行只取第一个字符串,然后按照字典序输出每个字符串的个数。 这里有个技巧就是先用scanf获取第一个字符串,然后再用gets直接…...
![](/images/no-images.jpg)
枣庄哪里有做网站设计/头条今日头条新闻头条
Python是一个非常好用的编程语言,开发的速度非常快,而且语法简单,通俗易懂,很容易上手,很适合初学者学习,对于Python的了解,很多人只知道Python与人工智能关系密切,却不知道Python的其他用途,其实学好Python还可以做很多事情,以下是具体的介绍: 1.WEB开发 Python拥…...
![](/images/no-images.jpg)
洛米wordpress主题/网站开发软件有哪些
HDFS sink里有个属性hdfs.rollInterval86400,这个属性你设置了24小时滚动一次,它的确就到了24小时才滚动,但是我们的需求往往是到了0点就滚动文件了,因为离线的job因为都会放在夜里执行。 如果flume是早上9点启动的,那…...
![](/images/no-images.jpg)
清水河网站建设/营销怎么做
2016-05-03 2016-05-03 Json是一种简便的数据结构,是JavaScript的子集。解析就是把json数据解析为javascript代码,序列化就是把javascript数据包装成json。 json可以支持三种数据类型: 1.简单值。数字,字符,布尔值&…...
![](/images/no-images.jpg)
枣庄市建设局网站/seo是广告投放吗
使用Java完成Excel文件的上传、内容的解析和以及保存操作。重点主要在于使用org.apache.poi包下的Workbook类完成对Excel内容的解析首先pom文件引入Apache poi,org.apache.poipoi-ooxml3.9Apache POI提供API给Java程序对Microsoft Office(Excel、Word、PowerPoint等…...