我使用过的Linux命令之if - Bash中的条件判断语句

我使用过的Linux命令之if - Bash中的条件判断语句

本文链接:http://codingstandards.iteye.com/blog/780156    (转载请注明出处)

用途说明

Shell中的条件判断语句,与其他编程语言类似。

如果需要知道有哪些条件判断方式,通过man test就可以得到帮助。

常用格式

格式一

if 条件; then

    语句

fi

格式二

if 条件; then

    语句

else

    语句

fi

格式三

if 条件; then

    语句

elif 条件; then

    语句

fi

格式四

if 条件; then

    语句

elif 条件; then

    语句

else

    语句

fi

使用示例

示例一

if [ "foo" = "foo" ]; then
    echo expression evaluated as true
fi

 

[root@jfht ~]# if [ "foo" = "foo" ]; then
>     echo expression evaluated as true
> fi
expression evaluated as true
[root@jfht ~]#

示例二

if [ "foo" = "foo" ]; then
    echo expression evaluated as true
else
    echo expression evaluated as false
fi

 

[root@jfht ~]# if [ "foo" = "foo" ]; then
>     echo expression evaluated as true
> else
>     echo expression evaluated as false
> fi
expression evaluated as true
[root@jfht ~]#

示例三

T1="foo"
T2="bar"
if [ "$T1" = "$T2" ]; then
    echo expression evaluated as true
else
    echo expression evaluated as false
fi

 

[root@jfht ~]# T1="foo"
[root@jfht ~]# T2="bar"
[root@jfht ~]# if [ "$T1" = "$T2" ]; then
>     echo expression evaluated as true
> else
>     echo expression evaluated as false
> fi
expression evaluated as false
[root@jfht ~]#

示例四 判断命令行参数数量

文件 if_4.sh

#!/bin/sh

if [ "$#" != "1" ]; then
    echo "usage: $0 <file>"
    exit 1
fi

 

[root@smsgw root]# cat if_4.sh
#!/bin/sh

if [ "$#" != "1" ]; then
    echo "usage: $0 <file>"
    exit 1
fi

[root@smsgw root]# chmod +x if_4.sh
[root@smsgw root]# ./if_4.sh
usage: ./if_4.sh <file>
[root@smsgw root]# ./if_4.sh hello
[root@smsgw root]#

 

示例五 判断文件中是否包含某个字符串

if grep -q root /etc/passwd; then
    echo account root exists
else
    echo account root not exist
fi

 

[root@jfht ~]# if grep -q root /etc/passwd; then
>     echo account root exists
> else
>     echo account root not exist
> fi
account root exists
[root@jfht ~]#

 

示例六 判断文件是否存在

if [ -e myfile ]; then
    echo myfile exists
else
    touch myfile
    echo myfile created
fi

 

[root@jfht ~]# if [ -e myfile ]; then
>     echo myfile exists
> else
>     touch myfile
>     echo myfile created
> fi
myfile created
[root@jfht ~]# if [ -e myfile ]; then
>     echo myfile exists
> else
>     touch myfile
>     echo myfile created
> fi
myfile exists
[root@jfht ~]# ls -l myfile
-rw-r--r-- 1 root root 0 10-09 20:44 myfile

 

示例七 判断两个文件是否相同

echo 1 >file1
echo 2 >file2
if ! diff -q file1 file2; then
    echo file1 file2 diff
else
    echo file1 file2 same
fi 

 

[root@jfht ~]# echo 1 >file1
[root@jfht ~]# echo 2 >file2
[root@jfht ~]# if ! diff -q file1 file2; then
>     echo file1 file2 diff
> else
>     echo file1 file2 same
> fi
Files file1 and file2 differ
file1 file2 diff
[root@jfht ~]#

问题思考

1. 怎么判断字符串非空?

2. 怎么判断文件非空?

3. 怎么判断文件可执行?

4. 怎么判断目录?

5. 怎么判断数值大小判断?

相关资料

【1】BASH Programming 6.1 Dry Theory

【2】刘 泰山的博客 bash if 条件判断

 

返回 我使用过的Linux命令系列总目录

 

Qt for Android:基于libusb实现CH340x串口通信的高效开发方案 本文详细介绍了在Qt for Android环境下,基于libusb实现CH340x串口通信的高效开发方案。通过绕过Android高版本系统的权限限制,利用libusb+JNI技术实现稳定通信,适用于工业手持终端等场景。文章涵盖环境搭建、核心实现、常见问题解决方案及性能调优经验,帮助开发者快速掌握这一关键技术。 阅读详情

相关推荐

保姆级教程:在RV1126开发板上跑通YOLOv5口罩检测(从数据集到摄像头实时识别)

本文提供了一份详细的RV1126开发板部署YOLOv5口罩检测系统的全流程指南,涵盖数据集准备、模型训练优化、边缘部署及实时摄像头识别等关键步骤。重点解析了RV1126开发板的性能特征、YOLOv5模型训练调优技巧、RKNN模型转换量化策略,以及部署过程中的性能优化方案,帮助开发者高效实现边缘端目标检测应用。

weixin_27310985的博客 107

笔记 | Bash 中 if 判断选项

Notes | If option in Bash

Trollz的博客 4484

Maxwell参数化建模

MAXWELL 2019 R3 参数化建模 参数化建模的优势 所谓参数化,就是在电机本体设计中涉及到的各类参数变量化,而每个变量之间又存在一定的制约关系,这样只需修改其中某个或者某些变量就可以做到对整个电机模型合理地改动。 参数化举例 以表贴式电机为例,先画电机定子,如上所示,依次进行后会弹出下面的选项框 上图就是描述电机尺寸的各类参数,接下来进行参数化。 回车ENTER,并给变量ds赋值。 赋值好后,回车ENTER 左下角properties里面就有我们新建立的变量ds了。 继续将剩余的参数

qq_41387280的博客 1万+

bash if语句

一简介 str1 = str2      当两个串有相同内容、长度时为真 str1 != str2     当串str1和str2不等时为真 -n str1       当串的长度大于0时为真(串非空) -z str1       当串的长度为0时为真(空串) str1        当串str1为非空时为真 [ "2006.01.23" \> "2005....

s2421458535的博客 1万+

RK3588 固定hdmiin的dev/videoX节点

RK3588 固定hdmiin的dev/videoX节点

目前从事linux驱动开发,多交流多学习吧 2050

WOFOST作物模型(3):敏感性分析

使用TAGP(Total Above Ground Production),地上总产量TSUM1,temperature sum from emergence to anthesis,萌发至开花所需温度TSUM2,temperature sum from anthesis to maturity,开花至成熟所需温度SPAN,life span of leaves growing at 35 Celsius,生长温度为35度时的叶龄。

所有专家都曾始于新手 1145

bash中的if语法

if语句: 1.单分支的if语句:        if 判断条件; then               statement1               statement2               ……        fi 2. 双分支的if语句:     if 条件判断; then                 statement1

ucan23 1836

LVGL(lv_canvas)

这篇文章介绍了LVGL图形库中的lv_canvas组件,主要内容包括: lv_canvas是一个绘图缓冲区对象,提供丰富的绘图API,可以理解为LVGL的"离屏画布"。 基本使用流程:创建缓冲区->创建canvas对象->设置缓存和尺寸->进行绘图操作。 详细列举了常用的绘图函数,如绘制线条、矩形、文字、图片等。 提供了示例代码展示如何创建画布并绘制一条红色线段。 介绍了canvas的典型应用场景,如动态波形绘制、自定义控件底图等。 对比了canvas与普通img的区别

m0_49476241的博客 1023

Linux shell脚本之 if条件判断

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

doiido的专栏 14万+

YOLOv11涨点改进 | 全网独家首发、特征融合创新篇 | ACM 2025顶会 | 引入DAAttn差异感知注意力融合模块,通过动态调整注意力,使模型更准确地识别关键内容,提高精度、并减少冗余计算

本文提出了一种基于DAAttn(差异感知注意力融合)模块改进的YOLOv11模型,用于提升变化检测任务的性能。DAAttn模块通过动态加权特征差异,有效区分有意义变化与噪声(如光照、天气变化),显著提高了模型在复杂场景下的检测精度。该模块采用反转注意力机制,重点关注显著差异区域,同时减少计算冗余。实验表明,改进后的模型在保持计算效率的同时,能够更准确地识别小目标和细节变化。文章详细介绍了DAAttn的原理、优势、实现代码及其在YOLOv11中的集成方法,并提供了两种改进配置方案。

Ai缝合怪、助力小伙伴高效发论文 300

大模型长对话中上下文无法承载全部历史,如何压缩或提取重点

如果说截断和滑动窗口是“硬性”压缩,那摘要生成技术就显得“软”多了,也更接近于智能化的解决方案。它的思路是:不直接丢弃历史,而是通过自然语言处理(NLP)技术,把冗长的对话记录浓缩成一段简短的摘要,保留核心信息。这样既能大幅减少token数量,又不至于丢失关键内容。这种方法通常会借助预训练模型,比如BART或T5,它们擅长从长文本中提取重点内容。

大模型大数据攻城狮的专栏 1586

bash if条件判断

在bash中,if是可以对语句做选择执行,做if条件测试有整数测试,字符测试,文件测试三种形式。

小青头的博客 7413

【32】OpenCV——图像含义关系?RGGB , BGGR , GRBG , GBRG呢?raw8,raw10,raw12,raw14呢? YUV422; RAW16呢?YCbYCr/RG_GB;

‌如前所述,定义原始数据的位深精度。‌* ‌一种压缩色彩编码方式,通过色度抽样(亮度Y全分辨率,色度U/V半分辨率)减少数据量,常用于视频传输。‌* ‌可能指每个像素分量占16位存储(如高位填充的RAW10/12/14),或未明确量化的高精度原始数据。‌ ‌分类‌核心定义‌关联性及典型应用传感器原始色彩排列(RGGB/BGGR等)决定RAW数据的色彩分布规则RAW位深每个分量的数据精度(8/10/12/14位)影响动态范围和存储空间‌YUV422。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 791

linux在命令行if,Linux命令之if - Bash中的条件判断语句

用途说明Shell中的条件判断语句,与其他编程语言类似。如果需要知道有哪些条件判断方式,通过man test就可以得到帮助。常用格式格式一if 条件; then语句fi格式二if 条件; then语句else语句fi格式三if 条件; then语句elif 条件; then语句fi格式四if 条件; then语句elif 条件; then语句else语句fi使用示例示例一Bash代码if[...

weixin_42715262的博客 2901

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

linux或者命令if,小弟我使用过的Linux命令之if - Bash中的条件判断语句

我使用过的Linux命令之if - Bash中的条件判断语句我使用过的Linux命令之if - Bash中的条件判断语句本文链接:http://codingstandards.iteye.com/blog/780156(转载请注明出处)用途说明Shell中的条件判断语句,与其他编程语言类似。如果需要知道有哪些条件判断方式,通过man test就可以得到帮助。常用格式格式一if 条件; then语句...

weixin_28901327的博客 230

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

linux检测进程条件命令,Linux命令之if - Bash中的条件判断语句

用途说明Shell中的条件判断语句,与其他编程语言类似。如果需要知道有哪些条件判断方式,通过man test就可以得到帮助。常用格式格式一if 条件; then语句fi格式二if 条件; then语句else语句fi格式三if 条件; then语句elif 条件; then语句fi格式四if 条件; then语句elif 条件; then语句else语句fi使用示例示例一Bash代码 if[...

weixin_42515822的博客 296

linux程序猿搜索if语句,Linux Shell脚本if-else语句及test命令

Linux中的if语句根据其后紧跟的command语句的退出码是否非零进行逻辑判断,这是不同于其他编程语言的一个特性。状态退出码的介绍可以参考:https://www.jianshu.com/p/ba478a2dbcbcif-then语句的基本格式ifcommandthencommandsfi抑或是:ifcommand;thencommandsfi请注意后者在待求值的命令尾部增加了分号if-t...

weixin_32080327的博客 173

Shell if 条件判断

一、if的基本语法: if [ command ];then # 符合该条件执行的语句 elif [ command ];then # 符合该条件执行的语句 else # 符合该条件执行的语句 fi 二、文件/文件夹(目录)判断 操作 说明 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d DIR ] 如果 FILE 存在且是一个目录则为真。

star_kite的博客 1371

linux下的脚本编程,Linux中的脚本编程

Linux中的脚本编程2010-04-09 10:54linux脚本(shell)编程linux 下最重要的脚本语言算是 bash 了,我也就写点这个吧(我也只会这个:))。跟其他开发语言(如C)比,bash是比较简单的一种语言,主要用于写一些脚本代码,一些批处理或安装程序。你可以看看在/etc/init.d/目录下,那里就有很多用来控制各个服务的脚本文件。先看一个“hello world!”的例...

weixin_33765593的博客 516

linux使用结构化命令

支持 -eq、-ne、-gt、-lt、-ge、-le。运行 bash test.sh,输出结果截图即可。若命令退出码为0,则执行then后命令。二、if-then-else与elif。用于测试数值、字符串、文件条件。使用 &&(与)和 ||(或)。echo “文件存在且可读”echo “以test开头”echo “文件存在且可读”echo “str以h开头”echo “平方不大于20”echo “平方大于10”echo “num大于3”echo “平方大于20”一、if-then语句。

mtdw0613的博客 166

Shell杂技 wc,awk,if,for,xagrs,MySQL数据备份,备份文件实例

Linux For循环常用脚本案例及使用事项 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/612302964#:~:text=1 for 循环语法: for variable in values%3B do,命令输出必须使用 %24 (command) 或反引号来括起来 6 在执行循环体时,必须使用 done 关键字来结束循环体)(delim 即分隔符,默认的xargs的分隔符是回车,这里是修改xargs的分隔符)mysql 分库分表备份。

AllenIverrui的博客 299

Shell结构化命令详解:if分支、test命令与括号表达式实操

本文基于Linux Bash Shell结构化命令课程内容,完整梳理 if-then 系列分支语句、 test 测试命令、单/双方括号、双括号语法,结合Xshell实操截图,搭建Shell条件判断知识框架,附可直接运行的脚本案例,适配课程第十次作业要求。,和你之前终端运行效果一致。-eq 等于、 -ne 不等于、 -gt 大于、 -lt 小于、 -ge 大于等于、 -le 小于等于。4. 高级判断:双方括号 [[ ]] 、双括号 (( )) ,支持字符串正则、数值运算与复合逻辑。

caojiayi0427的博客 223

【Linux基础-8】Shell基础

什么是shell?Shell(外壳) 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。什么是脚本?脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。

qq_45695920的博客 893

Bash 条件语句解析:`if [ “$4“ == “true“ ]; then`

Bash 条件语句解析:`if [ "$4" == "true" ]; then`

Leon_Jinhai_Sun的博客 509

Linux中if语句用法总结

shell中的逻辑判断一般用if语句,if语句中通常用[]来表示条件测试,可以比较字符串、判断文件是否存等。 if … else 语句常用基本的语法如下: 1.if [];then fi 语句 建一个测试脚本test.sh如下 #!/bin/bash a=$1 b=$2 if [ $a == $b ];then echo "a and b is equal" fi if [ $a != $b...

hyfstyle的博客 7万+

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

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

ZHX2285的博客 4865

linux 脚本 if判断 o,bash Shell 中如何实现条件判断之if判断

http://blog.51cto.com/lovelace/1211353bash中如何实现条件判断?条件测试类型:整数测试字符测试文件测试一、条件测试的表达式:[expression]括号两端必须要有空格[[expression]]括号两端必须要有空格testexpression组合测试条件:-a:and-o:or!:非二、整数比较:-eq测试两个整数是否相等-ne测...

weixin_42500616的博客 1551
上一篇: 我使用过的Linux命令之for - Bash中的For循环
下一篇: 我使用过的Linux命令之free - 显示内存的使用情况
codingstandards
博客等级 码龄16年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值