0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

BASH shell脚本篇—条件命令

冬至子 来源:CSDN 作者:谷公子 2023-10-11 15:21 次阅读

这篇文章介绍下BASH shell中的条件相关的命令,包括:if, case, while, until, for, break, continue。

1. If语句

if语句用于在顺序执行语句的流程中执行条件任务。If语句通常用于在Bash脚本中做出决定。它们根据可能设置的条件来决定是否运行一段代码。if语句的语法格式有几种,如下:

# 1. if语句基本格式:
# 注意:观察第一行中使用的空格,在第一行末尾使用分号。两者都必须使
#       用,if条件语句以fi结尾
if [ condition ];  
then  
statements  
fi
 
# 2. if-else语法格式:
if [ condition ];  
then  
   < if block commands >  
else  
   < else block commands >  
fi
 
 
# 3. else-if语法格式:
if [ condition ];  
then  
< commands >  
elif [ condition ];  
then  
< commands >  
else  
< commands >  
fi

if语句condition中可以包含一些操作符去处理更复杂的场景。以下是一些最常用的操作符:

image.png

2. case语句

Bash case语句是具有许多ELIF元素的IF-THEN-ELSE的最简单形式。使用case语句使bash脚本更具可读性,并且更易于维护。它通常用于简化具有多种不同选择的复杂条件。case语句的语法如下:

case expression in  
    pattern_1)  
        statements  
        ;;  
    pattern_2)  
        statements  
        ;;  
    pattern_3|pattern_4|pattern_5)  
        statements  
        ;;  
    pattern-n)  
        statements  
        ;;  
    *)  
        statements  
        ;;  
esac
# 包含语句的模式称为子句,并且必须以双分号(;;)终止
# 星号(*)用作定义默认情况的最终模式。当用作最后一种情况时,它用作默认情况

首先,case语句扩展表达式并尝试与每个包含的模式匹配。找到匹配项后,将执行所有链接的语句,直到双分号(;;)为止。在第一个匹配项之后,case以最后执行的语句的退出状态终止。
如果没有匹配的模式,则case的退出状态为零。

否则,返回状态是已执行语句的退出状态。如果使用默认的星号( * )模式,则在没有匹配模式的情况下将执行它。

3. for循环

bash shell脚本也支持for循环以执行重复性任务。它有助于在字符串中的一系列单词或数组中的元素上迭代一组特定的语句。例如,可以多次运行UNIX命令(或任务),也可以仅使用for循环读取和处理命令列表。

可以通过两种方式在bash脚本上应用for循环。一种方法是for-in,另一种方法是C语言语法。for循环的语法:

# 方法1,list可以包含数字或字符串等,以空格分隔
for variable in list  
do  
commands  
done
# 方法2
for (( expression1; expression2; expression3 ))  
do  
commands  
done

当bash的三个表达式中没有“开始,条件和增量”循环时,它将变为无限循环。要终止Bash中的无限循环,可以按Ctrl + C。

4. while循环

while循环可以定义为控制流语句,只要所应用的条件为真,该语句就允许重复执行给定的命令集。例如,可以运行多次echo命令,也可以仅逐行读取文本文件,然后使用Bash中的while循环处理结果。while循环格式:

while [ expressions ];  
do  
commands;  
multiple commands;  
done
# expressions可以是单条件或多条件

5. until循环

until循环用于根据表达式的布尔结果重复执行一组命令。仅在表达式的值为真之前执行命令集。因此当表达式的计算结果为false时,将迭代执行一组命令。当表达式首次为真时,循环终止。until循环与while循环相似,但是概念相反。until循环的语法格式:

until [ expressions ];  
do  
command1  
command2  
. . .  
. . .
commandN  
done

6. break和continue

可以在循环中使用break语句来终止循环。可以在循环中使用continue语句来跳过特定条件下的特定语句。它告诉Bash停止执行循环的特定迭代并处理下一个迭代。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136772
  • Shell
    +关注

    关注

    1

    文章

    365

    浏览量

    23366
  • for循环
    +关注

    关注

    0

    文章

    61

    浏览量

    2502
  • bash终端
    +关注

    关注

    0

    文章

    7

    浏览量

    1992
收藏 人收藏

    评论

    相关推荐

    脚本美化高手之轻松实现文本颜色和背景定制的酷炫Shell技巧

    字符串 �33[0m" 或者echo -e "�33[字背景颜色;字体颜色m;ascii码m 字符串 �33[0m 字符串(can null) " 格式说明 shell脚本中echo命令是内容显示,
    的头像 发表于 12-06 10:38 111次阅读
    <b class='flag-5'>脚本</b>美化高手之轻松实现文本颜色和背景定制的酷炫<b class='flag-5'>Shell</b>技巧

    Linux从零到精通:最简单的Shell脚本入门教程

    通过简单的命令脚本,实现对系统的灵活控制和自动化管理。 shell脚本前言 shell脚本入门
    的头像 发表于 12-05 09:56 422次阅读
    Linux从零到精通:最简单的<b class='flag-5'>Shell</b><b class='flag-5'>脚本</b>入门教程

    Linux系统中shell命令解析

    shell是Linux系统的用户界面,提供了用户与内核交互的一种接口,它接收用户输入的命令并到送到内核去执行,因此也被称为Linux的命令解释器。
    的头像 发表于 11-05 15:40 245次阅读

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之test命令

    test命令用于测试某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。在shell文件中输入命令,通过特定的参数可以对数值、字符串进行比较,如下参数及示例。1、数值比较参数举
    发表于 09-06 10:31

    飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之test命令

    test命令用于测试某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。在shell文件中输入命令,通过特定的参数可以对数值、字符串进行比较,如下参数及示例。1、数值比较参数举
    发表于 09-05 09:09

    shell脚本执行的三种方式及区别

    在Linux系统中,Shell脚本是一种非常实用的工具,用于自动化执行一系列命令Shell脚本可以大大提高工作效率,简化复杂的任务。在这篇
    的头像 发表于 08-30 15:24 1095次阅读

    执行shell脚本的方式包括什么

    执行Shell脚本的方式有很多种,以下是一些常见的方法: 直接运行脚本文件 在命令行中,可以直接使用脚本文件的路径来运行
    的头像 发表于 08-30 15:17 326次阅读

    shell具有的功能和特点

    是执行命令。用户可以在 Shell 提示符下输入命令Shell 会解析命令并将其传递给操作系统执行。S
    的头像 发表于 08-30 14:48 505次阅读

    飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之变量

    变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell变量也遵循这个规则。每一个变量的值都是以字符串的形式存储。1
    发表于 08-29 11:04

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之本地脚本的编写和执行

    :3)shell应用程序执行shell脚本也可直接使用shell应用程序进行执行。我们前面说过,我们指定的shell应用为/bin/
    发表于 08-29 10:51

    shell脚本编写之本地脚本的编写和执行

    用来指定使用的shell应用;echo "my first shell !"为脚本中编写的命令代码。2、执行在执行脚本
    发表于 08-28 09:36

    嵌入式学习-shell介绍

    本使用的Shell有可能不同,但是基本的特性还是一样的:一、支持内置命令可直接使用;二、支持命令组合成新的复合命令;三、支持TAB键补齐;四、支持后台运行;五、支持
    发表于 08-16 09:13

    shell基本介绍及常用命令shell介绍

    本使用的Shell有可能不同,但是基本的特性还是一样的:一、支持内置命令可直接使用;二、支持命令组合成新的复合命令;三、支持TAB键补齐;四、支持后台运行;五、支持
    发表于 08-15 09:28

    shell脚本调试技巧

    0、专业脚本的规范格式 函数1函数2main函数main$* 1、使用dos2unix命令转换来自windows下开发的脚本 dos2unix默认是没有安装的,可以yum 安装
    发表于 12-28 16:57

    Shell脚本检查工具ShellCheck介绍

    ShellCheck是一个用于bash/sh shell脚本的静态分析工具,可以辅助检查脚本语法错误,给出建议增强脚本健壮性。
    的头像 发表于 12-27 13:43 2128次阅读
    <b class='flag-5'>Shell</b><b class='flag-5'>脚本</b>检查工具ShellCheck介绍