bash条件判断基础adsawq1`1nn

news2024/12/21 17:02:29

判断的作用

  • 判断后续操作的提前条件是否满足
  • 如果满足执行一种命令
  • 不满足则执行另一种指令

条件测试类型:

  • 整型测试
  • 字符测试
  • 文字测试

 整数测试:比较两个整数谁大谁小,是否相等;

    二元测试:

      num1 操作符 num2

      -eq: 等于

      -ne: 不等于

      -le:小于等于

      -ge:大于等于 

      -lt:小于

      -gt: 大于


字符测试:比较两个字符串是否相等;

    双目录

           >:          大于

           <:          小于

           ==:        等于,等值比较

           =~:        左侧是字符串,右侧是一个模式,判定左侧的字符串能否被右侧的模式所匹配;                             通常只[[ ]]中使用,模式中可以使用行首、行尾锚定符;但模式不要加引导

           !=, <>:     不等于

    单目录

           -n 字符串:  字符串是否不空,不空为真,空则为假

           -z 字符串:  字符串是否为空,空则为真,不空则假


 文件测试:测试某个文件是否具有读权限、写权限、执行权限等;

    单目测试:

      -e file :         测试文件是否存在

      -a file :         测试文件是否存在

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

      -d     :            测试是否为目录文件

      -b somefile :     测试文件是否存在并且是否为一个块设备文件

      -c somefile :     测试文件是否存在并且是否为一个字符设备文件

      -h|-L somefile :     测试文件是否存在并且是否为符号链接文件

      -p somefile :     测试文件是否存在并且是否为管道文件:

      -S somefile :     测试文件是否存在并且是否为套接字文件:

      -r somefile:      测试其有效用户是否对此文件有读取权限

      -w somefile:      测试其有效用户是否对此文件有写权限

      -x somefile:      测试其有效用户是否对此文件有执行权限

      -s somefile:      测试文件是否存在并且不空

     双目测试:

      file1 -nt file2 : 测试file1是否比file2

      file1 -ot file2 : 测试file1是否比file2

      file1 -ef file2 :  测试file1和file2是否引用同一个文件   


bash编程之:逻辑运算:

    与运算:

      真 && 真 = 真 

      真 && 假 = 假

      假 && 真 = 假

      假 && 假 = 假

    或运算:

      真 || 真 = 真 

      真 || 假 = 真

      假 || 真 = 真

      假 || 假 = 假

    非运算:

      !真 = 假

      !假 = 真


bash编程之:组合条件测试

    与:条件1 &&条件2

      条件1为假,则最终结果一定为假,否则,条件2不予执行

      条件1为真,则最终条件结果决于后面条件,因此,条件2必须执行

    或:条件1 ||条件2

      条件1为真,则最终结果一定为真,否则,条件2不予执行

      条件1为假,则最终条件结果决于后面条件,因此,条件2必须执行

    非: 

      与的优先级大于或,或的优先级大于非


bash编程之:条件测试方法

     test 表达式

     [ 测试表达式 ]

     [[ 测试表达式 ]]


bash编程之:if条件判断使用:

    单分支:

       if 条件; then

          分支1;

       fi

    双分支:

        if 条件; then

         分支1;

        else 

         分支2;

        fi

    多分支:

        if 条件; then

          分支1;

        elif 条件2; then 

          分支2;

        elif 条件3; then 

          分支3;

           ...

        else 

          分支n;

        fi


bash编程之:命令引用:

  1.引用命令的执行结果:使用`COMMAND`或$(COMMAND)

  2.引用命令执行是否成功的状态结果:一定是直接执行命令,此时需要执行结果重定向至/dev/null

bash编程之:脚本自动退出

  exit [n] 

        0表示成功(Zero - Success)

        非0表示失败(Non-Zero  - Failure)

        2表示用法不当(Incorrect Usage)

        127表示命令没有找到(Command Not Found)

        126表示不是可执行的


      用户和脚本进行交互:

        位置变量

        read命令

read -p "参数" 变量名

  位置参数轮替:

       #!/bin/bash

        echo "参数列表:$#"

        echo "参数列表:$@"

        echo""

        shift 2

       echo "参数列表:$#"

       echo "参数列表:$@"

        

       
       

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

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

相关文章

Spring boot 更改启动LOGO

在resources目录下创建banner.txt文件&#xff0c;然后编辑对应的图案即可 注释工具 Spring Boot Version: ${spring-boot.version},-.___,---.__ /|\ __,---,___,- \ -.____,- | -.____,- // -., | ~\ /~ | …

kafka 生产者 API 实践总结

文章目录 前言创建 kafka 生产者同步与异步发送消息同步发送异步发送 生产者参数配置client.idacks消息传递时间 序列化器在Kafka中使用Avro记录 分区标头拦截器配额和节流 前言 kafka 对外提供的 API 主要有两类&#xff1a;生产者 API 和 消费者 API&#xff0c;本文将从Kaf…

推荐 2 个本周 火火火火 的开源项目

01 微软新手课程&#xff1a;生成式AI入门 在人工智能的浪潮中&#xff0c;生成式AI&#xff08;Generative AI&#xff09;以其创造力和应用潜力成为焦点。微软推出的 “generative-ai-for-beginners” 课程&#xff0c;为初学者提供了一个全面了解和学习生成式AI的平台。 1️…

SpringBoot怎么单独关闭某个类打印出来的日志?

application.yml文件增加以下内容&#xff1a; logging:level:org.springframework.amgp.rabbit: OFF 配置logging:level是配置的什么&#xff1f; 在application.yml文件中配置logging.level是用来设置日志级别的。这是Spring Boot应用中的一个常用配置&#xff0c;它允许您…

煤矿安全大模型:微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答

煤矿安全大模型————矿途智护者 使用煤矿历史事故案例,事故处理报告、安全规程规章制度、技术文档、煤矿从业人员入职考试题库等数据,微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答。 本项目简介: 近年来,国家对煤矿安全生产的重视程度不断提升。为了确…

SpringCloud基础篇

文章目录 创建新模块拷贝yml配置文件修改配置文件的信息修改pom.xml文件启动入口拷贝相关文件接口文档配置配置启动项注册中心原理Nacos注册中心创建nacos数据库存储数据部署nacos在docker容器中 服务注册引入依赖配置Nacos地址启动 服务发现(调用)引入依赖配置nacos地址发现并…

Webpack: 插件架构之Hook体系

概述 Webpack 之所以能够应对 Web 场景下极度复杂、多样的构建需求&#xff0c;关键就在于其健壮、扩展性极强的插件架构&#xff0c;而插件架构的精髓又在于其灵活多变的 Hook 体系&#xff0c;可以说&#xff0c;只有真正掌握 Hook 底层设计与实现逻辑&#xff0c;深入理解不…

qt 开发笔记堆栈布局的应用

1.概要 画面中有一处位置&#xff0c;有个按钮点击后&#xff0c;这片位置完全换成另一个画面&#xff0c;这中情况特别适合用堆栈布局。 //堆栈布局的应用 #include <QStackedLayout> QStackedLayout *layout new QStackedLayout(this); layout->setCurrentIndex(…

音乐伴奏提取?唱歌剪辑好用的音频人声分离软件!提取步骤很简单!

随着数字技术的飞速发展&#xff0c;音乐制作和编辑领域也迎来了前所未有的变革。其中&#xff0c;音乐伴奏提取和音频人声分离技术更是成为了音乐创作者和音频工程师手中的得力助手。本文将探讨这两项技术的最新进展&#xff0c;并分析6月发布的8款新品软件。 一、音乐伴奏提取…

美术馆预约小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;展品信息管理&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;美术馆管理&#xff0c;基础数据管理&#xff0c;论坛管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;美术馆&#xff…

Android 换肤之主题换肤

文章目录 Android 换肤之主题换肤概述效果实现代码结构定义属性定义主题在Activity中使用在Fragment中使用工具类 源码下载 Android 换肤之主题换肤 概述 Android 实现应用内换肤的常用方式&#xff08;两种&#xff09;&#xff1a; 通过Theme切换主题&#xff0c;即静态方…

《企业实战分享 · 常用运维中间件》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; 近期刚转战 CSDN&#xff0c;会严格把控文章质量&#xff0c;绝不滥竽充数&#xff0c;如需交流&#xff…

【第三版 系统集成项目管理工程师】第5 章 软件工程

持续更新。。。。。。。。。。。。。。。 【第三版】第五章 软件工程 5.1软件工程定义练习 5.2软件需求5.2.1雾求的层次1.业务需求-P2032.用户需求-P2033.系统需求-P203 5.2.2质量功能部署 P2035.2.3需求获取 P2045.2.4需求分析1.结构化分析-P2042.面向对象分析-P207 5.2.5号求…

IDEA中Maven的配置

目录 1. 安装maven 2. 配置环境变量 3. IDEA中配置Maven 4. 配置仓库目录 1. 安装maven 官网下载地址&#xff1a;Maven – Download Apache Maven 下载后&#xff0c;将zip压缩包解压到某个目录即可。 2. 配置环境变量 变量名称随意&#xff0c;通常为M2_HOME&#xff…

DLS平台:运价持续上涨,未来航运市场何去何从?

摘要&#xff1a; 近期&#xff0c;上海出口集装箱结算运价指数&#xff08;SCFIS&#xff09;欧洲航线连续10周上涨&#xff0c;涨幅高达151%。随着多家航运公司宣布涨价&#xff0c;市场供应紧张导致运价居高不下。本文将详细分析当前运价上涨的原因、航运市场的变化及未来运…

精打细算:建设酒吧或小酒馆

开设一家酒吧或小酒馆&#xff0c;不仅仅是一场对美酒的浪漫追求&#xff0c;更是一次深思熟虑的投资决策过程。在这个过程中&#xff0c;选择合适的酿造设备是至关重要的一步&#xff0c;它直接关系到酒吧的运营效率、产品品质乃至最终的盈利能力。本文天泰小编将从多个维度出…

『Z-MeetUP』 6月29日线下活动——跨越Web3基础设施边界

Meetup In Hangzhou ZJUBCA 2024 求是 创新 TIME:2024/06/29 ADD:浙江大学紫金港校区 概述 / OVERVIEW 悠闲午后&#xff0c;感谢大家积极参与此次社区聚会&#xff0c;我们共同探讨了跨越Web3基础设施边界&#xff0c;发掘技术前沿&#xff0c;领略链上生态的无限可能。 让我…

Qt Creator13配置Android开发环境

QT Creator13是目前&#xff08;2024年&#xff09;最新版本&#xff0c;配置Android开发环境有一些不一样&#xff0c;走了一些弯路&#xff0c;记录如下。 1、安装JDK和SDK 下载安装JDK和SDK&#xff0c;建议安装在无空格和中文字符的目录下。 具体安装步骤不再赘述&#…

TongRDS2214手动部署版指引(by lqw+sy)

文章目录 前言准备工作单机版集群版哨兵版多个中心节点配置 前言 由于一些特殊原因&#xff08;例如服务器没有联网&#xff0c;没有办法直接更新和下载unzip指令&#xff0c;从而导致控制台版本安装节点之后&#xff0c;会报file not found的错误&#xff0c;或者使用不了rds…

CQ 社区版2.13.3 | 支持全局开启OTP登录、文本导入功能可独立控制……

又到一月一度的 CloudQuery 发版时间啦&#xff01; 本次版本更新&#xff0c;对多个模块进行了功能的优化和完善&#xff0c;比如将文本导入与 insert 权限脱离使文本导入可单独控制&#xff1b;将工具权限与权限等级脱离&#xff0c;使其能独立授权和提权&#xff1b;操作模…