Shell编程-逻辑判断

devtools/2024/10/18 18:27:34/

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们前面学习了那么多命令,以及涉及到部分逻辑判断的问题。从简单来说,他就是Shell编程,只有由于命令比较单一,只能实现比较简单的功能。如果我们把多个操作都放到一起去,并添加更复杂的逻辑在里面,他就是Shell编程。所以我们主要从以下几个方面讲解Shell编程:

Shell编程-什么是shell

Shell编程-变量

Shell编程-数据类型

Shell编程-逻辑判断(本章节)

Shell编程-if判断

Shell编程-if和else

Shell编程-while循环

Shell编程-for循环

Shell编程-case

Shell编程-break

Shell编程-continue

Shell编程--函数

Shell编程-案例(一)

Shell编程-案例(二)

Shell编程-小结

其实这里用逻辑判断是不严谨的,因为真实的判断有很多分类的。另外就是我们定义了不同的变量,那怎么对这些不同变量进行比对呢,其实主要包括的就是下面几种判断。

数值比较

if [ "$num1" -eq "$num2" ]; thenecho "Numbers are equal."
fi
  • -eq:等于

  • -ne:不等于

  • -gt:大于

  • -ge:大于等于

  • -lt:小于

  • -le:小于等于

字符串比较

if [ "$str1" = "$str2" ]; thenecho "Strings are equal."
fi
  • =:等于(注意:在 [] 中使用时,需要用双引号括起来)

  • !=:不等于

文件测试比对

if [ -f "$file" ]; thenecho "$file is a regular file."
fi
  • -f:判断文件是否存在且是普通文件

  • -d:判断文件是否存在且是目录

  • -e:判断文件是否存在(通用的存在性测试)

  • -s:判断文件是否存在且非空

  • -r:判断文件是否存在且可读

  • -w:判断文件是否存在且可写

  • -x:判断文件是否存在且可执行

逻辑运算

if [ "$var1" = "value1" ] && [ "$var2" -gt 10 ]; thenecho "Both conditions are true."
fi
  • &&:逻辑与,用于同时满足两个条件

  • ||:逻辑或,用于满足任意一个条件

  • !:逻辑非,用于取反

字符串长度比较

if [ -z "$str" ]; thenecho "String is empty."
fi
  • -z:判断字符串是否为空(长度为0)

  • -n:判断字符串是否非空(长度不为0)

文件比较

  • -nt:判断文件是否比另一个文件新(newer than)

  • -ot:判断文件是否比另一个文件旧(older than)

总结

  1. 同类型的数据类型才能进行比对

  2. 这里都只是判断,下一小节将针对判断结果进行下一步的操作。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维

关注微信公众号《运维小路》获取更多内容。


http://www.ppmy.cn/devtools/125368.html

相关文章

使用 Redis 在 Spring Boot 中实现排行榜功能

一、Redis Sorted Set 简介 Redis 提供的 Sorted Set 数据结构非常适合用于排行榜场景。Sorted Set 既具备 Set 的无重复元素特性,又具备 List 的排序特性。Sorted Set 中的每个元素都会关联一个分数(score),通过这个分数进行排序。 1.1 Sorted Set 的基本操作 添加元素:…

优先算法1--双指针

“一念既出,万山无阻。”加油陌生人! 目录 1.双指针--移动零 2.双指针-复写零 ok,首先在学习之前,为了方便大家后面的学习,我们这里需要补充一个知识点,我这里所谓的指针,不是之前学习的带有…

前端开发设计模式——装饰器模式

目录 一、装饰器模式的定义和特点 1.定义 2.特点 二、装饰器模式的实现方式 1.在原生JS中实现(以类的形式为例) 2、在Vue中实现(以指令和混入为例) 2.1、指令方式实现装饰功能 2.2、混入方式实现装饰功能 三、装饰器模式的…

H7-TOOL的LUA小程序教程第14期:任意波形信号发生器,0-20mA输出和微型数控电源(2024-10-11,已更新)

LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用&#xff…

Ajax和axios简单用法

Ajax Ajax(Asynchronous JavaScript And XML,异步的JavaScript和XML)。 作用是: 数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应的数据。异步交互:可以在不重新加载整个页面的情况…

施磊C++ | 进阶学习笔记 | 1.对象的应用优化、右值引用的优化

一.对象的应用优化、右值引用的优化 文章目录 一.对象的应用优化、右值引用的优化1.1 构造,拷贝,赋值,析构中的优化课后练习: 1.2 函数调用过程中对象背后调用的方法1.3 对象优化三原则1.4 右值引用、move移动语意、完美转发 1.1 …

【CSS3】css开篇基础(2)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

LVS负载均衡群集

目录 一、群集概述 二、群集的分类 1.负载均衡群集(Load Balance Cluster) 2.高可用群集(High Availability Cluster) 3.高性能运算群集(High Performance Computer Cluster) 三、负载均衡的结构 四、…