shell脚本条件判断

从爱好者到工程师:如何低成本体验RFSoC ZU47DR?性能实测与避坑指南 本文详细介绍了如何低成本体验赛灵思RFSoC ZU47DR芯片,包括二手开发板选购、租赁服务、精简开发环境搭建等实用方案。通过性能实测与避坑指南,帮助爱好者和工程师在有限预算下充分利用这款集成了ARM处理器和FPGA的高性能芯片,降低开发门槛。 阅读详情
shell脚本条件判断


UNIX Shell 编程中条件判断是极为重要的,以下是常用的条件判断:

-b file 若文件存在且是一个块特殊文件,则为真

-c file 若文件存在且是一个字符特殊文件,则为真
-d file 若文件存在且是一个目录,则为真
-e file 若文件存在,则为真
-f file 若文件存在且是一个规则文件,则为真
-g file 若文件存在且设置了SGID位的值,则为真
-h file 若文件存在且为一个符合链接,则为真
-k file 若文件存在且设置了”sticky”位的值
-p file 若文件存在且为一已命名管道,则为真
-r file 若文件存在且可读,则为真
-s file 若文件存在且其大小大于零,则为真
-u file 若文件存在且设置了SUID位,则为真
-w file 若文件存在且可写,则为真
-x file 若文件存在且可执行,则为真
-o file 若文件存在且被有效用户ID所拥有,则为真

-z string 若string长度为0,则为真
-n string 若string长度不为0,则为真
string1 = string2 若两个字符串相等,则为真
string1 != string2 若两个字符串不相等,则为真

int1 -eq int2 若int1等于int2,则为真
int1 -ne int2 若int1不等于int2,则为真
int1 -lt int2 若int1小于int2,则为真
int1 -le int2 若int1小于等于int2,则为真
int1 -gt int2 若int1大于int2,则为真
int1 -ge int2 若int1大于等于int2,则为真



二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 

整数比较 

-eq       等于,如:if [ "$a" -eq "$b" ] 
-ne       不等于,如:if [ "$a" -ne "$b" ] 
-gt       大于,如:if [ "$a" -gt "$b" ] 
-ge       大于等于,如:if [ "$a" -ge "$b" ] 
-lt       小于,如:if [ "$a" -lt "$b" ] 
-le       小于等于,如:if [ "$a" -le "$b" ] 
<       小于(需要双括号),如:(("$a" < "$b")) 
<=       小于等于(需要双括号),如:(("$a" <= "$b")) 
>       大于(需要双括号),如:(("$a" > "$b")) 
>=       大于等于(需要双括号),如:(("$a" >= "$b")) 

字符串比较 


=         等于,如:if [ "$a" = "$b" ] 
==       等于,如:if [ "$a" == "$b" ],与=等价 


       注意:==的功能在 [[]] 和 []  中的行为是不同的,如下: 

       1 [[ $a == z* ]]    # 如果$a以"z"开头(模式匹配)那么将为true 
       2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true 
       3 
       4 [ $a == z* ]      # File globbing 和word splitting将会发生 
       5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true 
       一点解释,关于File globbing是一种关于文件的速记法,比如"*.c"就是,再如~也是. 

       但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像. 


!=       不等于,如:if [ "$a" != "$b" ] 
       这个操作符将在[[]]结构中使用模式匹配. 
<       小于,在ASCII字母顺序下.如: 
       if [[ "$a" < "$b" ]] 
       if [ "$a" \< "$b" ] 
       注意:在[]结构中"<"需要被转义. 
>       大于,在ASCII字母顺序下.如: 
       if [[ "$a" > "$b" ]] 
       if [ "$a" \> "$b" ] 
       注意:在[]结构中">"需要被转义. 
       
-z       字符串为"null".就是长度为0. 
-n       字符串不为"null" 
       注意: 
       使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z 
       或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可 
       以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯. 


!expr 若expr为假则复合表达式为真。expr可以是任何有效的测试表达式
expr1 -a expr2 若expr1和expr2都为真则整式为真
expr1 -o expr2 若expr1和expr2有一个为真则整式为真

特殊变量

$0 正在被执行命令的名字。对于shell脚本而言,这是被激活命令的路径
$n 该变量与脚本被激活时所带的参数相对应。n是正整数,与参数位置相对应($1,$2…)
$# 提供脚本的参数号
$* 所有这些参数都被双引号引住。若一个脚本接收两个参数,$*等于$1$2
$@ 所有这些参数都分别被双引号引住。若一个脚本接收到两个参数,$@等价于$1$2
$? 前一个命令执行后的退出状态
$$ 当前shell的进程号。对于shell脚本,这是其正在执行时的进程ID
$! 前一个后台命令的进程号
 
行末:$      
行首:^
空格:\s

行末空格:\s\+$
行首空格:^\+\s
Linux ELF文件解析:从file到readelf的完整工具链指南 ELF(可执行与可链接格式)是Linux系统中二进制文件的标准格式,定义了程序加载、内存布局和元数据组织方式。其核心原理在于通过程序头表描述执行视图、节区头表描述链接视图,实现代码与数据的结构化存储。这一格式的技术价值在于为程序调试、安全审计和性能优化提供了底层支持,尤其在动态链接、符号解析和内存保护机制中发挥关键作用。在应用场景上,系统管理员依赖ELF分析工具解决库依赖问题,安全研究员通过检查安全属性评估漏洞风险,开发者则利用反汇编进行代码调试。本文聚焦于file、readelf、objdump等工具链的 阅读详情

相关推荐

MoveIt避坑指南:UR机械臂编程中常见的5个错误及解决方法

本文针对UR机械臂与MoveIt集成开发中的常见问题,总结了五个典型错误及其解决方案,包括关节限位设置、坐标系混淆、规划器选择、运动学求解器配置以及线程资源管理。重点分析了正逆运动学求解错误的原因,并提供了调整容忍度、显式指定坐标系、选择合适规划器及优化IK配置等实用代码示例,帮助开发者提升编程效率与系统稳定性。

root9的博客 434

Shell条件判断

基本语法 [ condition ] 注意: 条件非空即为true,[ mubai ]返回true,[] 返回false; condition前后要有空格; 常用判断条件 两个整数之间比较 = 字符串比较 -lt 小于(less than) -le 小于等于(less equal) -eq 等于(equal) -gt 大于(greater than) -ge 大于等于(greater equal)...

weixin_38932035的博客 594

<视觉>——单目相机的标定(简单原理+Opencv实现)

单目相机的标定原理大致如下: 世界坐标到像素坐标的转换。 期间的参数有S尺度因子,内参矩阵K,旋转矩阵R,平移矩阵T,一共八个未知数。 在Opencv中我们可以方便的根据相机拍摄不同位姿的标定板图片来标定相机,从而求得这些参数,从而可以将相机下的坐标和实际的世界坐标联系起来,求取单应性矩阵H 参考: 单目相机综述:写的特别好 https://www.cnblo...

Kano365的博客 1万+

shell脚本--判断

有了测试,就要有获得测试结果的机制,并根据测试结果运行不同的代码段,这样程序就可以从简单的命令罗列变得更“智能”一些,从而实现程序的流程控制。在Shell中,流程控制分为两大类,一类是“循环”,一类是“判断选择”。

zhanjun520的博客 6243

VS2022命令行编译C++报错?一招解决‘fatal error C1034: iostream: 不包括路径集‘

本文针对VS2022命令行编译C++时常见的'fatal error C1034: iostream: 不包括路径集'错误,深入剖析了其根源在于环境变量缺失。文章提供了永久配置用户环境变量(PATH、INCLUDE、LIB)的一劳永逸解决方案,确保在任何终端中都能直接使用cl命令进行编译,并给出了进阶配置与常见错误排查指南。

weixin_29011667的博客 304

Ubuntu+Dify实战:如何让大模型知识库完美支持图片召回(附避坑指南)

本文详细介绍了在Ubuntu系统上部署Dify平台,并实现大模型知识库图片召回功能的完整实战方案。通过解析Dify处理图片的底层逻辑,重点讲解了配置Nginx代理服务器将本地图片路径转换为可公开访问URL的核心工程步骤,并提供了文档预处理、环境变量配置以及父子分段策略等高级技巧,帮助开发者构建图文并茂的AI应用,有效提升知识库的丰富性和用户体验。

c7d8e的博客 445

Shell脚本----条件判断

文章目录逻辑控制---条件判断一、条件判断的实现二、if的简单结构1、条件的写法1)、数字表达式2)、字符表达式3)文件目录表达式2、单分支if3、多分支if1)、多条件的写法4、嵌套if5、case条件判断1)、位置变量 逻辑控制—条件判断 一、条件判断的实现 if case 二、if的简单结构 if 条件 ; then 执行的操作 执行的操作 fi 1、条件的写法 shell 命令 判断命令的执行状态码 [ 表达式 ] 数字表达式 字符表达式 文件目录表达式 1)、数字表达式

ljh451321的博客 1868

数据库:关系运算整理大全(包括关系代数、元组关系演算、域关系演算)

数据库关系运算: 1. 关系代数(基本关系代数、附加关系代数、扩展关系代数) 2. 元组关系演算 3. 域关系演算

ysji's blog 1万+

Shell if 条件判断

Shell 语言中的if条件 一、if的基本语法: if [ command ];then 符合该条件执行的语句 elif [ command ];then 符合该条件执行的语句 else 符合该条件执行的语句 fi 二、文件/文件夹(目录)判断 [ -b FILE ] ...

1534

E4A蓝牙APP开发实战:从零到一构建简易物联网控制终端

本文详细介绍了使用E4A(易安卓)开发蓝牙APP的实战教程,从零开始构建简易物联网控制终端。通过E4A的中文编程环境和内置蓝牙组件,开发者可以快速实现智能家居控制、创客项目遥控等功能。文章涵盖硬件准备、开发环境搭建、核心代码解析及典型应用场景,特别适合零Java基础的电子爱好者入门蓝牙APP开发。

weixin_42715608的博客 475

Vue中实现word文档渲染、在线编辑、保存

Vue3对word文档进行渲染、编辑、保存。word转成html,html转成word

h18749849699的博客 1328

shell判断、if语句

整数测试字符测试文件测试。

。 1902

Pytorch入门实战(2)-使用BP神经网络实现MNIST手写数字识别

上一篇:Pytorch入门实战(1) - 实现线性回归 涉及知识点 Pytorch nn.Module的基本使用 Pytorch nn.Linear的基本用法 PytorchVision Transforms的基本使用 Pytorch中DataLoader的基本用法 Pytorch详解NLLLoss和CrossEntropyLoss 如何确定神经网络的层数和隐藏层神经元数量 本文内容 本文将会使用BP神经网络(就是最普通的神经网络)实现一个MNIST手写数据集的实现。话不多说,直接开始。 首先先导入需要的包

iioSnail的博客 6617

shell脚本中条件判断语句

之前讲到了shell脚本中的一些基础操作,还有简单的加减法运算,今天先补充几点吧,因为可能条件判断语句中会用到,如果有没有补充讲到的在条件判断语句中出现了我也会特地说一声。

qq_59677536的博客 1168

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Linux shell脚本之 if条件判断

bash shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语句,否则后面的命令不执行,跳到下一条命令。当有多个嵌套时,只有第一个返回0退出状态的命令会导致符合该条件执行的语句部分被执行,如果所有的语句的执行状态都不为0,则执行else中语句。返回状态:最后一个命令的退出状态,或者当没有条件是真的话为0。

doiido的专栏 14万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【Day 40】Shell脚本-条件判断

本文介绍了Shell脚本中常用的条件判断结构,重点讲解了if和case两种判断方式。if条件判断支持单分支、双分支、多分支结构,适用于范围判断和多分支逻辑;case条件判断适用于等值匹配场景。文章详细说明了if条件的四种核心写法(命令结果、数值、字符、文件/目录判断),并提供了多个实战案例(用户检测、磁盘使用率监控、密码验证等)。此外,还介绍了多条件组合(and/or)的使用方法,以及case判断的语法和实际应用案例.

2301_81654480的博客 1756

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SHELL脚本之条件判断——if语句

如上图所示,当执行脚本出现在我们电脑屏幕上的信息对于我们来说,并无用处的时候,为了节省系统资源,保持系统性能,可以使用重定向符号将出现的内容交给/dev/null即系统中的黑洞文件中。如上图所示,这个内容的脚本在我们第一次执行的时候肯定没有问题但是当第二次执行的时候,肯定就会报错了。为了让脚本的执行更加符合人工作的逻辑。所以要加上条件判断。

ZHX2285的博客 4865

linux脚本条件判断或,shell脚本if条件判断总结

Shell脚本IF条件判断和判断条件总结,本文先是给出了IF条件判断的语法,然后给出了常用的判断条件总结基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。if list thendo something hereelif list thendo another thing hereelsedo something else herefi#!/bin/shSYSTEM=`...

weixin_36310597的博客 1558

Shell脚本IF条件判断和判断条件总结

if list then do something here elif list then do another thing here else do something else here fi #!/bin/sh SYSTEM=`uname -s` #获取操作系统类型,我本地是linux if [ $SYSTEM = "Linux" ] ; then #如果是l

lonelykin的专栏 6743

shell脚本if条件判断总结

Shell脚本IF条件判断和判断条件总结,本文先是给出了IF条件判断的语法,然后给出了常用的判断条件总结 基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。 if list then do something here elif list then do another t

Primeprime的专栏 1618

Shell 脚本中的 if 条件判断

if...else... 可以说是我们在编程中最常见的条件判断语句了,那么在 `Shell` 中如何使用呢?如何判断两个数值相等?如何判断一个文件是否存在?跟随这篇文章,一起来学习吧!

u012948302的专栏 4082

Linux Shell脚本条件判断

Shell条件判断       if list then            do something here        elif list then            do another thing here        else           do something else here        fi     EX1: #!/bin

alex大喵的博客 2337

Shell脚本-条件判断语法格式

Shell脚本-条件判断语法格式

qq_51626500的博客 1162

Shell脚本-条件判断1

使用[ ]和test进行基本条件判断。使用[[ ]]进行更复杂的条件判断和模式匹配。使用命令直接测试其返回状态码。使用case进行模式匹配和变量值的检查。根据具体需求选择合适的判断语法来编写 Shell 脚本。使用[ ]是传统的方法,[ ]需要在条件表达式的开头和结尾加上空格。使用[[ ]]是更现代的方法,支持更复杂的条件。test命令与[ ]功能相同,但语法略有不同。可以使用其他命令直接测试条件,如ls。根据需要选择适合的方法。如果需要兼容性和更复杂的功能,推荐使用[[ ]]。

sq2048935747@163.com的博客 1037

shell脚本if条件判断和判断条件总结

一、前言 这篇文章主要介绍了Shell脚本if条件判断和判断条件总结,本文先是给出了if条件判断的语法,然后给出了常用的判断条件总结,需要的朋友可以参考下。 二、语法 shell脚本的if语句语法如下(注意:表达式与 [] 之间需要加空格): if [ 表达式1 ]; then ... elif [ 表达式2 ]; then ... elif [ 表达式2 ]; then ... else...

有理论,有实验,有结论,可为一篇文章 2082

Shell脚本-条件判断相关参数

Shell脚本-条件判断相关参数

qq_51626500的博客 1078
上一篇: 生产环境批量检查web服务是否正常并且发送相关邮件或手机报警
下一篇: 分布式与集群的联系与区别
linux_Cz
博客等级 码龄12年 1粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值