【Linux | Shell】结构化命令 - if 语句

这篇具有很好参考价值的文章主要介绍了【Linux | Shell】结构化命令 - if 语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


【Linux | Shell】结构化命令 - if 语句,linux系统,linux,运维,服务器

一、概述

前面文章介绍了一些Shell脚本的基础知识,也了解了怎样构建一个shell脚本文件,让shell脚本执行一些基础的指令,但都是从上到下依次执行的。在实际shell编程中,会遇到很多情况需要判断条件,按不同条件去执行不同的命令。本文注意介绍shell编程中的一些结构化命令条件语句等内容:

  • if-then 语句
  • if-then-else 语句
  • if-then-elif 语句
  • 嵌套 if 语句【Linux | Shell】结构化命令 - if 语句,linux系统,linux,运维,服务器

【Linux | Shell】结构化命令 - if 语句,linux系统,linux,运维,服务器

二、if-then 语句

if-then 语句是最基本的结构化命令,其格式如下:

if command
then
	commands
fi

首先,if语句会运行 if 之后的命令;
然后,判断该命令的退出状态码($?)是否为0,为0则执行then部分的命令,不为0则不执行;
最后,fi 语句用来表示 if-then 语句到此结束。


在有些脚本中,你可能看到过 if-then 语句的另一种形式:

if command; then
	commands
fi

通过把分号(;)放在待求值的命令尾部,可以将 then 语句写在同一行,这样看起来更像其他编程语言中的 if-then 语句。

【Linux | Shell】结构化命令 - if 语句,linux系统,linux,运维,服务器

三、if-then-else 语句

if-then 语句中,不管命令是否成功执行,都只有一种选择。下面介绍这个命令在命令执行成功后,会执行一些命令,不成功则可以执行其他命令,这就是 if-then-else 语句。if-then-else 语句格式如下:

if command
then
	commands
else
	commands
fi

首先,if语句会运行 if 之后的命令command
然后,判断该命令的退出状态码($?)是否为0,为0则执行then部分的命令,不为0则执行else部分的命令;
最后,fi 语句用来表示 if-then 语句到此结束。

【Linux | Shell】结构化命令 - if 语句,linux系统,linux,运维,服务器

四、if-then-elif 语句

if-then-else 语句也只是提供了两个选择,如果想要判断更多的情况,可以选择if-then-elif语句。if-then-elif 语句格式如下:

if command
then
	commands
elif command
then
	commands
fi

首先,if语句会运行 if 之后的命令command
然后,判断该命令的退出状态码($?)是否为0,为0则执行then部分的命令;
不为0则继续运行elif的命令command
继续判断该命令退出状态码是否为0,为0则执行then部分的命令;
最后,fi 语句用来表示 if-then 语句到此结束。


可以继续将多个 elif 语句串起来,形成一个更大的 if-then-elif 嵌套组合:

if command1
then
	command set 1
elif command2
then
	command set 2
elif command3
then
	command set 3
elif command4
then
	command set 4
fi

【Linux | Shell】结构化命令 - if 语句,linux系统,linux,运维,服务器

五、嵌套 if 语句

有时需要在脚本中检查多种条件。对此,可以使用嵌套的 if-then 语句。嵌套的 if 语句是指在 if 语句的命令部分又使用 if 语句,基本格式如下:

  • 在 then 命令部分嵌套
if command
then
	commands
	if command
	then
		commands
	fi
fi
  • 在 else 命令部分嵌套
if command
then
	commands
else
	commands
	if command
	then
		commands
	fi
fi

【Linux | Shell】结构化命令 - if 语句,linux系统,linux,运维,服务器
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁文章来源地址https://www.toymoban.com/news/detail-572952.html

到了这里,关于【Linux | Shell】结构化命令 - if 语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elasticsearch结构化查询

    在上一篇中我们介绍了DSL相关的知识,接下来我们将会学习elasticsearch的结构化查询,同时也实践一下上一篇的DSL的查询用法 从《Elasticsearch权威指南》上摘取部分解释如下: 从上面的定义我们可以看出来结构化查询最重要的就是是否匹配么人并不是很关心相关性和分值计算。

    2024年02月01日
    浏览(44)
  • 【numpy基础】--结构化

    目前为止,介绍的 numpy 数组基本都是关于数值的,其实, numpy 本身就是一个用于数值计算的基础库。 不过,除了数值计算之外, numpy 也能够支持 结构化数组 。 numpy 的数组为了提高计算性能,要求数组的数据类型要一致。 但是现实情况下,我们经常遇到不是纯数值的数组

    2024年02月12日
    浏览(42)
  • 第五章 结构化设计

    一种软件开发活动,定义实现需求规约所需的软件结构。 结构化设计分为: (1)总体设计:确定系统的整体模块结构,即系统实现所需要的软件模块以及这些模块之间的调用关系。 (2)详细设计:详细描述模块。 体系结构设计(MSD) 接口设计 数据设计 实现软件设计的目标对结

    2024年02月08日
    浏览(56)
  • 结构化流的介绍

    目录 有界数据和无界数据 有界数据  无界数据  结构化流 基本介绍 入门案例 结构化流的编程模型 数据结构 数据源(Source) File Source Kafka Source(Spark 和 Kafka 整合) 整合Kafka准备工作 从kafka中读取数据 流式处理 批处理  数据写入Kafka中 流式处理 批处理 有界数据 数据有固定的开

    2024年01月15日
    浏览(61)
  • WPF 界面结构化处理

    WPF 框架是开源的,但是不能跨平台,可以使用MAUI,这个框架可以跨平台,WPF源码可以在github上下载,下载地址:https://gitbub.com/dotnet/wpf。 框架结构 如图 XAML:eXtensible Application Markup Language的英文缩写,相应的中文名称为:可扩展应用程序标记语言。 命名空间 默认 映射:x/

    2024年02月13日
    浏览(58)
  • elasticsearch结构化查询(一)

    在上一篇中我们介绍了DSL相关的知识,接下来我们将会学习elasticsearch的结构化查询,同时也实践一下上一篇的DSL的查询用法 从《Elasticsearch权威指南》上摘取部分解释如下: 从上面的定义我们可以看出来结构化查询最重要的就是是否匹配么人并不是很关心相关性和分值计算。

    2024年02月05日
    浏览(58)
  • SQL:结构化查询语言

    创建一张表并插入数据: 以下常用函数以MySQL为例,其它数据库类似

    2024年02月06日
    浏览(46)
  • 结构化流(Structured Streaming)

    有界数据: 无界数据: 结构化流是构建在Spark SQL处理引擎之上的一个流式的处理引擎,主要是针对无界数据的处理操作。对于结构化流同样也支持多种语言操作的API:比如 Python Java Scala SQL … Spark的核心是RDD。RDD出现主要的目的就是提供更加高效的离线的迭代计算操作,RDD是针

    2024年01月17日
    浏览(53)
  • MATLAB结构化程序设计

    1 、实验目的: 1)巩固并加深对MATLAB语言程序设计知识的理解; 2)掌握和提高MATLAB语言编程和程序调试的基本技能; 3)进一步理解和运用结构化程序设计的思想和方法; 4)提高运用MATLAB语言解决实际问题的能力。 2-1)、分别使用for语句和while语句求1~100的和。 while语句

    2023年04月08日
    浏览(37)
  • Structured Concurrency:结构化并发

    https://ericniebler.com/2020/11/08/structured-concurrency/ 是什么:一种确保子操作在父操作之前完成的方式,类似函数在调用函数之前完成。 最典型的结构化并发:C++20的协程 意义:它通过使异步生存期与普通C++词法作用域相对应,为异步程序带来了现代C++风格,并且不需要引用计数(

    2024年02月05日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包