热门标签 | 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



推荐阅读
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • STM32与FPGA的对比及学习建议
    本文对比了野火STM32F103指南针板和Xilinx的PYNQ-Z2板(ZYNQ-7020),介绍了野火STM32F103指南针板的学习资料和讲解视频的详细程度,建议初学者学习野火的资料。同时,介绍了STM32开发所用的Keil程序和C指针的重要性。对于ZYNQ-7020的开发,提到了其自带的Linux、Ubuntu18.4系统以及使用SD卡烧入镜像的方法。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • Linux Shell脚步的格式
    Shell脚步等多个命令的组合,可以做成一个shell文件(1.sh)赋权执行执行命令的方式前两张新的进程中执行,对当前进程不产生影响(cdtmp;pwds ... [详细]
  • Linux系统高级网络配置:链路聚合
    链路聚合网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同 ... [详细]
  • 随着我司的应用都开始容器化,相应的ETL流程也需要迁移到容器中。常规的SQL和shell脚本迁移之后执行基本没有问题,主要的问题在于数据接入使用kettle的场景下,kettle启 ... [详细]
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社区 版权所有