你追我如果你追到我,我就教你Shell编程之条件语句

CODESYS V3.5 SP17编程环境全攻略:从安装到多语言编程实战 本文全面解析CODESYS V3.5 SP17编程环境,从安装配置到多语言编程实战技巧。详细介绍了运行时环境设置、六种IEC 61131-3语言的特性对比与混合编程策略,以及高级功能开发如自定义算法模块和实时通信配置。适合工业自动化工程师快速掌握这一强大工具。 阅读详情


条件测试

条件测试操作

  • test命令
    测试表达式是否成立,若成立返回0,否则返回其他数值
格式1:test 条件表达式
格式2:[ 条件表达式 ]       #条件表达式与括号之间要有空格进行分隔
  • 文件测试
[ 操作符 文件或目录 ]
  • 常用的测试操作符
-d:测试是否为目录(directory)
-e:测试目录或文件是否存在(Exist)
-f:测试是否为文件(File)
-r:测试当前用户是否由权限读取(Read)
-w:测试当前用户是否由权限写入(Write)
-x:测试当前用户是否由权限执行(eXcute)
  • 整数值比较
[ 整数1 操作符 整数2 ]      (引用变量之前要加$)
  • 常用的测试操作符
-eq (==):等于(Nqual)
-ne (!=):不等于(Not Equal)
-gt (\>):大于(Great Than) 
-lt (\<):小于(Lesser Then)
-le:小于或等于(Lesser or Equal)
-ge:大于或等于(Great or Equal)
  • 字符串比较
格式1:[ 字符串1 = 字符串2 ]或[ 字符串1 == 字符串2 ]      
      [ 字符串1 != 字符串2 ]     
格式2:
[ -z 字符串 ]      #检查字符串是否为空(Zero),对于未定义或赋予空值的变量将视为空串
[ -n 字符串 ]      #检测是否有字符串存在
  • 常用的测试操作符
=:字符串内容相同
!=:字符串内容不同,!号代表相反的意思
-z:字符串内容为空
-n:字符串是否存在
  • 逻辑测试
格式1:[ 表达式 ] 操作符 [ 表达式2 ]
格式2:命令1 操作符 命令2
  • 常用的测试操作符
-a或&&:逻辑与,”而且“的意思
-o或||:逻辑或,”或者“的意思
!:逻辑否
a=5
[ $a -ne 1 ] && [ $a != 2 ] 等同于 [ $a -ne 1 -a $a != 2 ]

 &&、||操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]中的话就会报错

示例:

[root@localhost ~]# [[ 2 -ge 3 ]] && echo true || echo false
false
[root@localhost ~]# [[ 2 -lt 3 ]] && echo true || echo false
true

if语句

if语句单分支结构

格式:

if 条件测试操作
   then
   命令序列
fi
或
if 条件测试操作; then 命令序列; fi

在这里插入图片描述
示例(1):

if [ 3 -gt 2 ]      #如果3大于2
then                #then
    echo "ok"       #输出字符“ok”
fi                  #结束语句,这个千万不能忘,要不然会报错

示例(2):

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

示例(3):

[ 3 -gt 2 ] && echo "ok"

if语句双分支结构

if 条件测试操作
   then 命令序列1
   else 命令序列2
fi

在这里插入图片描述
示例:

vim pingpc1.sh
#!/bin/bath
ping -c 3 -i 0.5 -W 2 pc1 &> /dev/null     #注释1  
if [ $? -eq 0 ]                            #$?是上一条命令执行后返回的状态,0表示执行正常
then
    echo "pc1 online"
else
    echo "pc1 off"
fi
注释1:

ping的选项:
-c:发送包的个数
-i:发送包的间隔时间
-W:超时时间
-w:多少秒后停止ping命令操作

&> :是将标准输出和错误输出都输出到后面的文件中

/dev/null :是一个黑洞文件,也就是“垃圾站”

if语句多分支结构

if 条件测试操作1
   then 命令序列1
elif 条件测试操作2
   then 命令序列2
[else]
   [命令序列3]
fi

在这里插入图片描述
示例:

vim score.sh

#!/bin/bash
read -p "请输入你的成绩:" score
if [ $score -le 10 -a $score -gt 0 ]
then
    echo "恭喜你,成功晋级"
    read -p "请输入你的性别:" sex
    if [ $sex = 男 ]
    then
        echo "请去男子组报道"
    elif [ $sex = 女 ]
    then
        echo "请去女子组报道"
    else
        echo "输入错误,请重新输入"
    fi
elif [ $score -gt 10 ]
then
    echo "很遗憾你被淘汰了"
else
    echo "请重新输入"
fi

浮点运算

bash 不支持浮点运算,如果需要进行浮点运算,则需要借助bc,awk 处理

示例:
#!/bin/bash
#加
f=$(echo "4.3+2.5"|bc)
echo "4.3+2.5=$f"

#减
f=$(echo "4.3-2.5"|bc)
echo "4.3-2.5=$f"

#乘
f=$(echo "4.3*2.5"|bc)
echo "4.3*2.5=$f"

#除
f=$(echo "4.3/2.5"|bc)
echo "4.3/2.5=$f"

case语句

case 变量值 in
模式 1)
命令序列 1
;;
模式 2)
命令序列 2
;;
......
*)
默认命令序列
esac

使用case分支语句时,要注意以下特点
case 行尾必须为单词“in”,每一模式必须以右括号“)”结束
双分号“;;”表示命令序列的结束
模式字符串中,可以用方括号表示一个连续的范围,如“[0-9]”;还可以用竖杠符号“|”表示或,如“A|B”
最后的“*)”表示默认模式,其中的“*”相当于通配符

不用加速器!Google Earth Pro登录失败自救手册:从服务器连接到地图加载的完整排错流程 本文详细解析了Google Earth Pro登录失败的常见问题及解决方案,包括服务器连接失败、地图加载异常等。通过基础排查、内置修复工具使用和高级配置调整,帮助用户无需加速器即可解决启动问题、黑屏和转圈圈等困扰,提升软件使用体验。 阅读详情

相关推荐

波分复用-Zblock仿真

Z-BLOCK是一种用于光通信模块的光学元件,其核心结构是在玻璃块一侧贴有4个特定波长滤光片,另一侧镀有反射膜和增透膜。光信号在内部呈现Z字形反射路径,实现波长分离。文章以可见光LED为例,在ZEMAX中演示了非序列模式下的建模过程,重点介绍了滤光片和膜层的参数设置方法。需要注意的是,入射角度需根据玻璃折射率、通道高度和厚度精确计算,否则可能导致光泄漏。该建模方法同样适用于光通信中的光纤激光器系统。

Zhaxibamao的博客 1756

Shell编程——退出状态(if语句判断某个命令的退出状态)

以下内容源于C语言中文网的学习与整理,如有侵权,请告知删除。

主要记录嵌入式学习与开发过程。 3239

R语言pls包实战:手把手教你用偏最小二乘(PLS)搞定高维数据回归(附完整代码与数据标准化避坑指南)

本文详细介绍了如何使用R语言的pls包进行偏最小二乘(PLS)回归分析,特别针对高维数据回归问题。通过完整的代码示例和数据标准化避坑指南,帮助读者掌握从数据预处理到模型优化的全流程,解决实际应用中的常见问题。

weixin_42662605的博客 352

if语句----shell脚本

if语句理解:如果怎样就怎样否则怎样(个人理解) 语法一(一个条件)、 if [condition] #如果 条件 then #那么 command #执行命令 fi #条件结束(结束语句) #条件与[] 之间有空格(固定格式) #单行写法:fi [condition] ;then command;fi 流程图: 语法二(两个条件...

叁笙侑幸 290

从零到一:龙芯杯参赛全攻略(含北理工学长经验PDF、B站培训视频与开源代码合集)

本文详细介绍了龙芯杯全国大学生计算机系统能力大赛的参赛全攻略,包括资源整合、技能树构建、团队协作和避坑指南。提供北理工学长经验PDF、B站培训视频与开源代码合集,帮助参赛者从零基础到站上领奖台。重点解析如何高效获取优质资源、避开新手常见陷阱及构建可落地的学习路径,助力普通学生系统学习CPU设计。

weixin_26802933的博客 542

ROCm rocr-libhsakmt分析系列1-2:多GPU跨卡VRAM访问机制分析

本文基于ROCr-Runtime的libhsakmt库源码,深入分析了多GPU系统中跨设备内存访问的实现机制。主要内容包括: 实现流程概述:通过P2P拓扑发现、统一虚拟地址空间、页表映射和硬件转发四个步骤,实现零拷贝的跨GPU内存访问。

图形/计算GPU的驱动与虚拟化技术分享园地 2509

【shell】if结构化命令

使用if -then语句 if -then语句有如下格式。(感觉等价于C语言的if) if command then commands fi bash shell的if语句会运行if后面的那个命令。如果该命令的退出状态码是0表示该命令成功运行,位于then部分的命令就会被执行。如果该命令的退出状态码是其他值,then部分的命令就不会被执行。fi表示if-then语句到此结束。 使用if -then-else语句 if -then -else语句有如下格式。(感觉等价于C语言中的if.

那可真是太开心了的博客 355

ARM 之十六 详解 CMSIS 版本变迁、各组件使用示例

目前,CMSIS 已经发展到了第六版,其目录结构也发生了重大的变化。在不断发展中,很多原来 CMSIS 的组件被不断独立出去,并因此成立了很多开源社区,今天就来学习一下!由于 CMSIS 已经包含了相当丰富的文档,因此,本文重点学习版本之间的变化以及一些实际使用示例。

技术干货 1957

Shell编程之分支结构程序设计

实验5.1 Shell编程之分支结构程序设计 一、实验目的 1、掌握逻辑与&&和逻辑或||的使用; 2、理解带参执行程序的实现原理; 3、掌握数值运算中expr和let命令的区别; 4、掌握if语句和case语句的编程技巧。 二、实验任务 1、练习逻辑与、逻辑或、逻辑非命令的使用; 2、编写shell脚本,并带参执行程序; 3、通过if语句,根据输入变量,求分段函数的值; 4、通过case语句,根据输入变量,求分段函数的值。 三、实验步骤 1、练习逻辑与、逻辑或、逻辑非命令的使用。 (1)首

mingyqf的博客 1600

Agent Harness Engineering: AI Agent 执行管控与安全沙箱 原理与最佳实践

我们正站在计算范式转移的历史节点上。2024-2026 年间,AI 系统从被动的内容生成器(Generative AI)演变为主动的行动执行者(Agentic AI)。这一转变的根本特征是:根据 2026 年初的行业数据:然而,能力的提升伴随着风险的指数级增长。2024-2026 年间发生的多起标志性安全事件揭示了 Agent 系统的脆弱性:案例 1:Slack AI 数据外泄事件(2024 年 8 月)案例 2:制造业供应链攻击(2026 年 Q3)案例 3:Arup 深度诈骗案(2026 年 9 月)这

AI天才研究院 1670

直方图均衡化原理及matlab和opencv实现代码

详细分析了直方图均衡化的数学原理,配有matlab和opencv实现代码

qq_21603315的博客 4779

Linux之shell命令执行完的退出状态详解+if语句的定义方法

文章目录一、退出状态的原理1.退出状态的原理2.$?的作用 一、退出状态的原理 1.退出状态的原理 2.$?的作用 1.先执行一条命令,再去echo $?查看数字 2.一般情况下0表示上一条命令执行正确,非0表示错误(错误原因可以查$?的值) (1) (2)$?获取退出状态 (3)上一个函数的返回值 ...

weixin_43936969的博客 1524

[RK3568 Android11] 教程之原厂SDK源码适配AIO-3568J板子跑起来

目录 一、前提 二、修改dts设备树 三、适配板子的dts 四、编译系统烧入固件验证 一、前提 因源码是直接使用原厂的SDK,没有使用firefly配套的SDK源码,所以手上这块firefly aio-3568j板子在硬件设计上与原厂使用的板子会有些差异;就是因为这些差异会导致新固件烧入后,debug串口打印许多错误信息,可能的话,系统还会崩溃掉,跑不起来; 主要差异在哪里呢?比如: ● DDR类型和品牌多样性; ...

~未来可期~ 1744

shell编程之条件语句

Shell 编程中的条件语句为我们提供了强大的程序控制能力。通过ifif-else和case语句,我们可以根据不同的条件执行不同的代码块,实现程序的灵活性和智能化。同时,条件表达式的高级用法,如逻辑操作符、方括号和双括号的使用,进一步扩展了条件判断的功能。通过不断练习和实践这些条件语句,我们可以编写出更加复杂和实用的 Shell 脚本。在实际应用中,我们可以根据具体的需求选择合适的条件语句来实现相应的功能。例如,当需要处理多个固定的选项时,case语句可能是更好的选择;而当需要进行复杂的条件判断时,

2501_91112123的博客 3405

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Shell 编程之条件语句

在Shell编程中,条件语句是非常重要的一部分,它允许我们根据特定的条件来执行不同的代码块。这极大地增强了Shell脚本的灵活性和功能性。下面,我们就来一起探讨一下Shell编程中的条件语句。

m0_74860678的博客 1676

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Shell编程之条件语句

文件测试是 Shell 脚本中最基础的检测手段,用于判断文件或目录的类型、存在性及权限属性。字符串比较用于检测文本内容是否符合预期,需注意引号的使用(避免空值导致语法错误)和运算符的正确选择。Shell 脚本的 “智能” 源于对系统状态的精准判断,而条件测试正是实现这一能力的基础。形式,脚本能够对文件属性、数值关系、字符串内容及多重条件组合进行检测,为流程控制提供决策依据。逻辑测试通过 “与”“或”“非” 操作组合多个条件,实现复杂场景的判断。的繁琐判断,提升代码的可维护性。语法示例(等价写法)

YUNYINGXIA的博客 3310

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Linux——Shell编程之条件语句

经过老师的教导,我宛若醍醐灌顶,清楚了走向胜利的“那张卡牌”。(没错,我还是一个牌佬)其实很多道理... ...很多人心里都清楚。能否选择去改变,这是需要很大的勇气与耐力。这些就懒得继续聊了,就像我“老大”(以前的老师)告诉我的一样:“你凭什么将自己的思想灌输于经历各异的他人?所以就这样吧,今天我们要对于Shell编程进行更详细的讲解。在之前的帖子中,我们初步的讲解了Shell编程的基本规范与相关各类变量。(如果你是第一次看到这些,对先前的知识并不了解,那么就来这里进行学习吧------→"闭关修行"

Lemon__ing的博客 1797

Shell编程之条件语句(详细的图文解读)

Shell编程之条件语句(详细的图文解读) 目录一、条件测试语句(一)、文件测试(二)、整数值比较(三)、字符串比较(四)、逻辑测试二、 if语句(一)、if语句单分支结构(二)、双分支 if 语句(三)、多分支 if 语句三、case 语句 一、条件测试语句 Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0(真true)时表示成功,返回值为非0值(假false)时表示失败或异常。 test 命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立($?返回值为 0 表示

Chenwei的博文 4820
上一篇: 吔我脚本啦!!——Shell脚本,重定向,自定义变量和赋值
下一篇: 伊邪那岐!——Shell编程之循环语句
Alterego_
博客等级 码龄6年 14粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值