Shell编程之条件判断语句

目录

一、条件判断

        1、test命令

        2、文件测试

        3、整数值比较

        4、字符串判断

5、逻辑测试

二、if语句

1、if单分支语句

2、双分支语句

3、多分之语句

4、case 分支语句


一、条件判断

        Shell环境根据命令执行后的返回状态值(echo $?)来判断是否执行成功,当返回值为0表示成功或正确,返回值为非0值表示失败或异常。(补充:Linux判断依据在别的编程语言中是反过来的,如java假为0,真为1)

        1、test命令

  有两种方式   

  •          test 条件表达式
  •          [ 条件表达式]     [  ] 相当于test

例子:

0表示成立   其他值表示不成立

        2、文件测试

  •         test 选项 文件/目录路径          test 选项  $变量
  •         [ 选项 文件/目录路径 ]           [ 选项  $变量 ]

     常用的操作符号有

-e测试目录或文件是否存在(Exist)
-d测试是否为目录(Directory)
-f测试是否为文件(File)
-r测试当前用户是否有权限读取(Read)
-w测试当前用户是否有权限写入(Write)
-x测试是否设置有可执行(Excute)权限。
-L测试是否为符号链接

        例子

-e

-d

-r

-w

-x

-L

        3、整数值比较

  •         格式:[ 整数变量1 操作符 整数变量2 ]

        常用的操作符

-eq等于
-ne不等于
-gt大于
-lt小于 
-le小于等于
-ge大于等于

例子

-eq

-ne

-gt

-lt

-le

-ge

        4、字符串判断

        格式

  •         test "字符串1" == "字符串2" 
  •          [ "字符串1" == "字符串2" ]

例子

         [[ "字符串1" =~ "字符串2 ]]    # 判断字符串1是否包含字符串2

例子

  •         test -z "字符串"      test -z "$变量"   [ -z "$变量" ]     #判断字符串或变量是否为空
  •         test -n "字符串"      test -n "$变量"   [ -n "$变量" ]     #判断字符串或变量是否有字符串

例子

5、逻辑测试

  •         格式1:[  表达式1  ]  操作符  [  表达式2  ]  
  •         格式2:命令1  操作符  命令2

常用操作符 -a或者&&  而且的意思

                 -o或者 ll  或者的意思

                     !: 逻辑  fou  !代表取反

  •         [ 表达式1 ] && [ 表达式2 ] ;[ 表达式1 -a 表达式2 ] ;[[ 表达式1 && 表达式2 ]]

也可以这样表达

或者的意思

!取反

二、if语句

1、if单分支语句

测试1

判断  a=1  b=2   如果b大于a 说明对的

2、双分支语句

格式

        if [ 条件判段语句]

        then

        echo “ xxxx”

        else

        echo "xxxx"

3、多分之语句

格式:

        if [ 条件表达式]

then

        echo "xxxxx"

elif [ 条件表达式]

then

echo " xxxx"

elif [ 条件表达式]

then

echo " xxxx"

else

echo "xxxx"

例子

4、case 分支语句

        

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

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

相关文章

简析网络风险量化的价值与应用实践,如何构建网络风险预防架构

网络风险量化能够让公司董事会和高管层看清当前的网络安全风险格局;它还将使安全团队能够在业务需求的背景下做出网络安全决策,帮助组织确定哪些风险对业务构成最大的威胁,以及预期的经济损失将是什么。 随着网络攻击手段的日益多样化和复杂…

学硕都考11408的211院校!河北工业大学计算机考研考情分析!

河北工业大学(Hebei University of Technology),简称河北工大,坐落于天津市,由河北省人民政府、天津市人民政府与中华人民共和国教育部共建, 隶属于河北省,是国家“双一流”建设高校、国家“211…

jenkins自动化部署详解

一、准备相关软件 整个自动化部署的过程就是从git仓库拉取最新代码,然后使用maven进行构建代码,构建包构建好了之后,通过ssh发送到发布服务的linux服务器的目录,最后在此服务器上执行相关的linux命令进行发布。 此篇文章jenkins…

Default Folder X for Mac v6.0.7激活版:高效、智能的文件管理新选择

在快节奏的工作与生活中,高效管理文件已成为每个Mac用户的迫切需求。Default Folder X for Mac正是为了满足这一需求而生,它以其卓越的性能和丰富的功能,为Mac用户带来了前所未有的文件管理体验。 Default Folder X for Mac拥有直观易用的界面…

数据链路层简单介绍

mac地址(物理地址) mac地址和ip地址,目的都是为了区分网络上的不同设备的,在最开始的时候,mac地址和ip地址是两伙人,独立各自提出的,ip地址是4个字节(早都不够用了)&…

BOM..

区别:

【vue-3】动态属性绑定v-bind

1、文本动态绑定&#xff1a; <input type"text" v-bind:value"web.url"> 简写&#xff1a; <input type"text" :value"web.url"> 2、文字样式动态绑定 <b :class"{textColor:web.fontStatus}">vue学…

ICRA 2024: NVIDIA 联合多伦多大学、加州大学伯克利分校、苏黎世联邦理工学院等研究人员开发了精细操作的手术机器人

英伟达&#xff08;NVIDIA&#xff09;正与学术研究人员合作&#xff0c;研究手术机器人。 NVIDIA 联合多伦多大学、加州大学伯克利分校、苏黎世联邦理工学院和佐治亚理工学院的研究人员开发了 ORBIT-Surgical&#xff0c;一个训练机器人的模拟框架&#xff0c;可以提高手术团…

《QT实用小工具·六十五》基于QPropertyAnimation实现的移动动画和控件覆盖

1、概述 源码放在文章末尾 该项目基于QPropertyAnimation实现了控件平移动画和控件之间的相互覆盖效果&#xff0c;项目demo演示如下所示&#xff1a; 项目解析&#xff1a; new QPropertyAnimation(ui.SingleOcclusion, “pos”); //创建动画对象&#xff0c;第一个参数传…

使用Xterm实现终端构建

————html篇———— // 需要使用Xterm Xterm的官网&#xff1a; Xterm.js 新建项目 增加基本文件 下载 框架 npm init -y Xterm依赖 npm install xterm/xterm 参考文档写的代码 贴入代码 <html><head><link rel"stylesheet" href"nod…

2024 Google I/O - 提前窥探 Android 15 的新功能与适配

今年年初就简单介绍过 Android 15 预览版 的相关内容&#xff0c;而昨天 Google I/O 宣布了 Android 15 Beta2&#xff0c;作为第二个 Beta 版本 &#xff0c;它已经基本接近它未来的样子&#xff0c;毕竟下个版本就是 Platform Stability 了&#xff0c;所以让我们提前来一睹 …

APH-Archives of Public Health

文章目录 一、期刊简介二、征稿信息三、期刊表现四、投稿须知五、投稿咨询 一、期刊简介 Archives of Public Health是一份范围广泛的公共卫生杂志&#xff0c;致力于出版公共卫生领域所有可靠的科学。该杂志旨在更好地了解人群的健康。该杂志有助于公共卫生知识&#xff0c;加…

IP学习——ospf1

OSPF:开放式最短路径优先协议 无类别IGP协议&#xff1a;链路状态型。基于 LSA收敛&#xff0c;故更新量较大&#xff0c;为在中大型网络正常工作&#xff0c;需要进行结构化的部署---区域划分、ip地址规划 支持等开销负载均衡 组播更新 ---224.0.0.5 224.0.0.6 …

ChatGPT-4o 实战 如何快速分析混淆加密和webpack打包的源码

ChatGPT-4o 几个特点 一个对话拥有长时间的记忆&#xff0c;可以连续上传文件&#xff0c;让其分析&#xff0c;最大一个代码文件只能3M&#xff0c;超出3M的文件&#xff0c;可以通过split-file可以进行拆分 其次ChatGPT-4o可以生成文件的下载链接&#xff0c;这有利于大文件的…

基于springboot+vue的学生考勤管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

Spring 框架的具体下载步骤

Spring 框架下载网址&#xff1a;JFrog 1.访问 Spring 官网 https://spring.io/ 2.在官网首页点击“Projects”进入项目页面。在项目页面找到“Spring Framework”并点击。 3.点击Spring Framework页面上的GitHub图标&#xff0c;进入GitHub仓库。 4.在GitHub仓库页面&…

简述MyBatis中#{}引用和${}引用的区别

各位大佬光临寒舍&#xff0c;希望各位能赏脸给个三连&#xff0c;谢谢各位大佬了&#xff01;&#xff01;&#xff01; 目录 1.有无预编译 优点 缺点 2.SQL执行的快慢 3.能否被SQL注入 4.参数输入方式 5.总结 1.有无预编译 #{}是有预编译的而${}是没有预编译的&…

使用决策树对金融贷款数据进行分析

使用决策树对金融贷款数据进行分析 在本篇博客中&#xff0c;我们将通过使用 Python、Pandas 和多种机器学习技术&#xff0c;对一组贷款数据进行全面分析。通过详细的步骤展示&#xff0c;你将学会如何进行数据预处理、可视化分析以及构建预测模型。 第一步&#xff1a;导入…

计算机网络之传输层知识点总结

5.1 传输层 &#xff08;1&#xff09;传输层介绍 &#xff08;2&#xff09;传输层的两个协议 &#xff08;3&#xff09;传输层的寻址与端口 5.2 UDP协议 &#xff08;1&#xff09;用户数据报协议UDP介绍 &#xff08;2&#xff09;UDP首部格式 &#xff08;3)UDP校验 …

一顿五元钱的午餐

在郑州喧嚣的城市一隅&#xff0c;藏着一段鲜为人知的真实的故事。 故事的主角是一位年过半百的父亲&#xff0c;一位平凡而又伟大的劳动者。岁月在他脸上刻下了深深的痕迹&#xff0c;但他眼神中闪烁着不屈与坚韧。 他今年52岁&#xff0c;为了给远在家乡的孩子们一个更好的…