热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxshell结构,linux——Shell的控制结构(附shell编写代码和运行结果)

针对shell的控制结构,也就是shell编程时所需要的三种控制流程,顺序分支和循环。在bash中,顺序可由简单的输入输出命令组成

针对shell的控制结构,也就是shell编程时所需要的三种控制流程,顺序/分支和循环。

在bash中,顺序可由简单的输入输出命令组成;分支语句由if、case实现;循环语句用for、while和until来实现。

一、if语句

1、基本的if语句

语句格式:

if condition

then

satements

else

statements

fi

92f7cd17ac9d160e92e40638cbe4135d.png

输出结果:

ec34ea97949a1f1c98a8108f228d9479.png

2、elif语句

elif语句格式:

if condition1

then

statements

elif condition2

then

statements

elif condition3

then

statements

……

else

statements

fi

dbe087efc093c4254c488ce2aecb64f3.png

输出结果:

82c9d21237cf1f6d5eca0f01f5a2c296.png

3、if语句其他形式

①if语句嵌套形式:

if condition ; then

if condition ; then

if condition ; then

statements

fi

fi

fi

②elif格式修改后:

if condition1 ; then

statements

elif condition2 ; then         statements

elif condition3 ; then         statements

……

else

statements

fi

7d7141919cc4a48891f90a9a1ff19d32.png

输出结果:

c0c2f284a3537670a933c6eb2577ce58.png

二、case语句

case是一个多分支结构,根据变量与各模式的匹配确定执行相应的语句序列。

case语句格式:

case variable in

pattern1) statements;;

pattern2) statements;;

pattern3) statements;;

……

patternn) statements;;

×) statements;;

esac

(1)简单的case脚本编写:

a2f8711a3ad52bfd82187cec8f5c532d.png

输出结果:

a0e9450cad654ad4512b6365006203e2.png

(2)case的合并匹配模式,即在每一个模式中,还可以使用通配符和逻辑符号

28a2af88fd5dd98da1b1077f720cc867.png

输出结果:

254b673b212d5f84cb29142c9df48716.png

(3)在case中,每个分支还可以执行多条命令:

bd73ecbf18a6f110211cd79376be27e0.png

输出结果:

c0f8aa1cdd65ef444138e5daf1b1cab2.png

三、for语句

for语句的语法格式:

for variable in values

do

statements

done

(1)简单的for脚本

65d6529714f5ef3e21aff6f6812c7b7b.png

输出结果:

10ded46a5d74c5e7c0b62478752e19bc.png

(2)在for循环中使用通配符

9594965b6ff0b0a7b613c7d814b295da.png

输出结果:

430537d514f98d709275896854459750.png

四、while语句

while语句格式:

while condition

do

statements

done

简单的while判断

28976c2e92bf017c47310894101808bd.png

输出结果:

dfd7bc7f02ff0b3c632dad0fe61e03a2.png

五、until语句

until语法格式:

until condition

do

statements

done

36064cc5ee27291eb47e6595fe4a734b.png

输出结果:

a90e3c96d6adac91ffb2320e9e8b1e81.png

六、break语句

break命令

break命令的功能是在控制条件为满足之前,跳出for、while或until循环。可以用break命令提供一个额外的数值参数来表明所要提跳出的循环层数,但一般情况下并不建议这么做,因为它将大大降低程序的可读性。

编写一个break脚本跳出if循环:

05bc9eddda5eb7206b07df4f1fe6ac7f.png

输出结果:

2657d1f78cce45d27f75b5573f33b01d.png



推荐阅读
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 12月16日JavaScript变量、函数、流程、循环等***线上九期班
    12月16日JavaScript变量、函数、流程、循环等***线上九期班 ... [详细]
  • Nature Microbiology: 人类肠道古菌基因组目录
    本研究揭示了人类肠道微生物群落中古细菌的多样性,分析了来自24个国家、农村和城市人群的1,167个非冗余古细菌基因组。研究鉴定了多个新分类群,并探讨了古菌对宿主的适应性及其与社会人口特征的关系。 ... [详细]
  • 使用Powershell Studio快速构建GUI应用程序
    本文介绍了如何利用Powershell Studio创建功能强大的可视化界面。相较于传统的开发工具,Powershell Studio提供了更为简便和高效的开发体验,尤其适合需要快速构建图形用户界面(GUI)的场景。 ... [详细]
  • 对于许多初学者而言,遇到总线错误(bus error)或段错误(segmentation fault/core dump)是极其令人困扰的。本文详细探讨了这两种错误的成因、表现形式及解决方法,并提供了实用的调试技巧。 ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 本文深入探讨了 PHP 实现计划任务的方法,包括其原理、具体实现方式以及在不同操作系统中的应用。通过详细示例和代码片段,帮助开发者理解和掌握如何高效地设置和管理定时任务。 ... [详细]
  • 本文探讨了 Linux 系统中的 Shell 架构及其如何处理环境变量,同时详细介绍了 Source 命令的作用和应用场景。 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
author-avatar
lksxq_468
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有