linux循环结构和选择结构,Shell脚本:选择结构、循环结构、

2023-11-06

1、选择结构

(1).选择结构的定义

选择结构是程序中带有判断的一种逻辑结构,只有符合一定的条件,程序体才会被执行。

(2)Linux shell 选择结构分类

----------------if-then控制结构

----------------case–esac控制结构

if  then 控制结构:单分支、双分支、多分支、嵌套if

单分支if格式:

if [ 条件]                     ([]是调用test的命令标识)

then

执行 语句

fi

双分支if格式:

if [  条件  ]

then

执行语句1

else

执行语句2

fi

多分支if格式:

if [  条件1  ]

then

执行语句1

elif [ 条件 2 ]

then

执行语句2

elif [ 条件 3 ]

then

执行语句3

else

fi

嵌套if格式:

if [ 条件1 ]

then

if [ 条件2 ]

then

语句...

else

语句.....

fi

else

语句....

fi

case esac控制结构

格式:

case $变量名 in

模式1)     # 右括号不能省(”可比较相等”)

命令序列1

;;         # 两分号不能省

模式2)

命令序列2

;;

*)

默认执行的命令序列

;;

esac

举例:输入1-7,显示周一到星期天,输入别的数则返回错误

read qqq

case $qqq in

1)

echo "xingqi 1"

;;

2)

echo "xingqi 2"

;;

3)

echo "xingqi 3"

;;

4)

echo "xingqi 4"

;;

5)

echo "xingqi 5"

;;

6)

echo "xingqi 6"

;;

7)

echo "xingqi tian"

;;

*)

echo "cuowu"

esac

2、循环结构

(1)for循环结构

编历/列表式循环结构

语法如下:

for 变量 in list

do

statement

Done

1)用seq产生一个序列范围,来控制编历的次数。

(seq命令产生一个数到另一个数之间的所有整数) seq 10 20

for i in $(seq 1 3)

do

echo "output $i ..."

done

for i in A B C D E F

do

echo "output $i ..."

done

2.C语言风格的循环结构

当for循环的条件为真时,执行循环体中的语句,语法如下:

for (( expr1;expr2;expr3 ))     # (()),注意

do

statement

done

for ((month=1;$month<=12;month++))

do

echo "create database analyse_$month..."

sleep 1  #停顿1秒

done

(2)while循环结构

当while 条件表达式为真时,执行循环体中的语句

while条件

do

执行语句

done

while 循环控制结构又分为两种 :while [] 结构、用while循环实现一个无限循环

----------------------while [] 结构,此时注意while 后要跟空格,否则会报错。

如: while [ $i -le 10 ],while(())结构,不用跟空格,如:while((i<10))

----------------------用while循环实现一个无限循环,每隔3秒钟调用一次程序,在解决队列一类的问题的时候会经常用到。

while [ 1 ] #数字没有要求,表示为真即可

do

echo "the script is running..."

sleep 3    ---------------------------隔三秒进行一次循环

done

循环中有两种类型的控制break和continue

这是一种无条件的流程控制,强制程序跳出当前的循环,或跳出当前循环继续执行下一个循环。

break命令,会退出当前的循环并且将控制权传递到本循环后面的第一个命令。

continue命令,当在程序执行过程中遇到这个命令,就会忽略本次循环中剩余的命令,将控制权交给循环的顶部。

while read 循环使用

1.while read变量可以按行读入

一直到所有行都读完,才退出循环,在实际工作中,会经常采用这种循环结构,进行数据的处理。

语法格式:

cat file.txt |while read line

# line可以换个名字,此处的cat也可以是一个产生若干行的命令,如find

do

….

done

需要注意的是while read line循环体中的变量,退出当前循环后,会被销毁,所以若要二次使用循环体中的变量,则需要采用其他办法。

因为管道后的while loop是sub shell ,所以里面的变量在执行完成后,需要销毁。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux循环结构和选择结构,Shell脚本:选择结构、循环结构、 的相关文章

  • Python的学习笔记案例6--判断密码强度5.0

    本节课主要讲原来分散的方法封装成一个类 使之成为一个整体 方便调用 就是面向对象编程的思想 1 面向过程编程和面向对象编程的区别 面向过程 POP 以程序执行过程为设计流程的编程思想 面向对象 OOP 以事物为中心的编程思想 什么是对象 O
  • 服务器响应的jsp文件,JSP服务器响应

    JSP服务器响应 Response响应对象主要将JSP容器处理后的结果传回到客户端 可以通过response变量设置HTTP的状态和向客户端发送数据 如Cookie HTTP文件头信息等 一个典型的响应看起来就像下面这样 HTTP 1 1
  • OpenSceneGraph-OpenSceneGraph-3.6.5源码编译

    前言 准备 git 不是必须 使用git得到的源码是3 6 5版本的 CMake vs2019 VS017可以 我这里用的vs2019 osg主页 源码下载 Cmake编译源码 编译报错 CMake Warning dev at F Pro
  • SDWebImage 笔记

    SDWebImage托管在github上 https github com rs SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片 具有缓存管理 异步下载 同一个URL下载次数控制和优化等特征 使
  • A股上市有什么条件?A股上市条件有哪些?

    A股的上市条件有这几点 一 资格要求 1 发行人应当是依法设立且合法存续的股份有限公司 经国务院批准 有限责任公司在依法变更为股份有限公司时 可以采取募集设立方式公开发行股票 2 发行人自股份有限公司成立后 持续经营时间应当在3年以上 但经
  • 【Web架构】使用 JSON API 的好处

    在 API 工艺的世界里 没有比设计更受热议的领域了 从 REST gRPC 到 GraphQL 有许多方法可以设计和标准化 Web API 交互 今天 我们将注意力转向另一种方法 JSON API JSONAPI org 上详细介绍的用于
  • java字符数组初始化_Java 字符串(一)字符串初始化

    一 String类概述 1 概述 java lang String类代表字符串 Java程序中所有的字符串文字 例如 abc 都可以被看作是实现此类的实例 String 是引用数据类型 不是基本数据类型 类String 中包括用于检查各个字
  • CVE-2021-30116: Kaseya VSA 远程代码执行漏洞通告

    报告编号 B6 2021 070601 报告来源 360CERT 报告作者 360CERT 更新日期 2021 07 06 0x01 漏洞简述 2021年07月06日 360CERT监测发现Kaseya发布了VSA管理软件的风险通告 漏洞等
  • 春秋云镜靶场挑战——Tsclient

    目标IP 39 98 73 212 网络拓扑 入口机器 1 使用namp对目标IP进行扫描 发现目标开放了1433端口 MSSQL服务 3389端口 RDP服务 2 可以先爆破MSSQL服务 如下可以看出成爆破出密码 3 使用MDUT工具连
  • Leetcode168. Excel表列名称

    力扣 LeetCode 官网 全球极客挚爱的技术成长平台 题解 力扣 LeetCode 官网 全球极客挚爱的技术成长平台 代码如下 class Solution public String convertToTitle int column
  • 【华为机试题解】奥特曼打怪兽

    大概题意 在一个N N的正方形区域 每个小格可能有三种状态 值为0 正常可通过 值为1 奥特曼可通过 同时还可以消灭怪兽 消灭后值变为0 消灭怪兽数量 1 值为 1 有大石头 奥特曼无法通过 奥特曼需要先从上往下走 这个过程只能向下或者向右
  • 正则表达式替换多个相同的连续字符串为一个字符串

    要替换的字符串 http localhost 9010 asqmasqm manage user 需要替换多个连续asqm为一个asqm 正则表达式 asqm 1 g 1 替换结果为 http localhost 9010 asqm man
  • Fedora 17 安装 ACE6.1

    下载 下载地址 http download dre vanderbilt edu 下载ACE 6 1 0 tar bz2 这个软件包只包含ACE 不包含TAO等附加的东西 另外bz2压缩格式的源码包比较小 只有7 55M 解压 mkdir
  • 若依 vue webpack 打包 tomcat部署 刷新404 问题处理思路

    1 参考若依官网中的添加WEB INF方法 若依文档说明 2 检查 vue config js中的生产环境配置 检查publicPath中的路由地址是否为tomcat中的前端路径 例如tomcat 的访问路径是localhost 8080
  • wpsppt设置页码和总页数_wps的ppt页码怎么设置

    wps的ppt页码怎么设置 PPT中如何设置页码那 你知道吗 下面是小编为大家推荐wps的ppt页码设置的内容 希望能够帮助到你 欢迎大家的阅读参考 设置步骤 新建一个PPT 选择 离子 模板 然后猛敲回车 插入多张PPT页面 点击 插入
  • SpringBoot 添加对JSP的支持(附常见坑点)

    序言 SpringBoot默认不支持JSP 如果想在项目中使用 需要进行相关初始化工作 为了方便大家更好的开发 本案例可直接作为JSP开发的脚手架工程 SpringBoot War JSP 常见问题 1 修改JSP需重启才能生效 在生产环境
  • Pycharm 使用pip安装包时候报错 no such option --build-dir

    Pycharm 使用pip安装包时候报错 no such option build dir 原因 pip版本过高 解决办法 对pip降级 等待pycharm更新即可 打开命令行 找到python所在的位置 输入 pip install pi
  • Qt中调用C#制作的com组件

    作者 billy 版权声明 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 前言 这里记录一下在 Qt 64位程序中调用 C 制作的 com 组件的流程 方便后期自己回顾 1 了解 TLB 格式 拿到的依赖库最重要的有一
  • c++四舍五入函数,向上取整,向下取整函数

    对含有小数点的数进行四舍五入是比较普遍的一种需求 在C 中也有类似的取整函数 在C 的头文件中有floor 和ceil 函数 在STL中还有round 函数 向下取整 floor 向上取整ceil 四舍五入取整round

随机推荐

  • 计算机需要解决的基本问题是,【基本计算机问题】计算机不是遇到非常严重的问题,请看这里解答...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 5 启动计算机时出现 Invalid Boot ini 无效 Boot ini 或 Windows could not start Windows 无法启动 错误信息 Invalid Boot
  • 【C++】可变参数模板

    2023年9月9日 周六下午 这个还是挺难学的 我学了好几天 在这里我会举大量的示例程序 这样可以有一个更好的理解 不定期更新 目录 推荐文章 示例程序一 拼接字符串 示例程序二 求整数和 示例程序三 输出一串整数 推荐文章 这里有一些不错
  • [蓝桥杯][2017年第八届真题]分巧克力 二分查找 c语言

    题目描述 儿童节那天有K位小朋友到小明家做客 小明拿出了珍藏的巧克力招待小朋友们 小明一共有N块巧克力 其中第i块是Hi x Wi的方格组成的长方形 为了公平起见 小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们 切出的巧克力需要满足
  • 数据结构-二分搜索树转双向链表(Java)

    二分搜索树转双向链表 牛客JZ36 题目 思路 1 对二分搜索树进行中序遍历 2 将二分搜索树左节点和根节点相连接 右节点和根节点相连接 遍历左子树 连接 左子树尾部不为空 leftTail right pRootOfTree pRootO
  • 求字符相似度的广度优先搜索问题请教

    有n名选手在玩游戏 他们每个人有一个字符 每个字符都有自己固定的若干个特征 特征的种类数为k 每个人的特征为特征总集的一个子集 两个字符的相似度定义为 如果两个字符A和B同时拥有某个特征或者同时没有某个特征 它们的相似度加一 蒜头君想创造出
  • 区块链三加一:去中心化的分布式记账系统

    区块链分布式账本技术的发展有利于人们掌控个人信息 并通过不变的记录保存服务或产品交易 减少对集中系统的依赖 而这场革命正在创造一个去中心化的可信环境 从而颠覆传统业务 区块链技术的核心是分布式记账 去中心化 不容易篡改 比特币等数字货币是区
  • 【PTA】【C语言】判断给定整数是否素数[加强版]

    素数是指在大于1的自然数中 除了1和它本身以外 不能被其他自然数整除的数 本题要求编写程序 判断从键盘输入的数是否素数 如果是素数 输出XX is prime number 的信息 输出XX is not prime number 的信息
  • jquery 取值 radio 问题

    1 获取选中值 三种方法都可以 input radio checked val input type radio checked val input name rd checked val 2 设置第一个Radio为选中值 input ra
  • android 文字高斯模糊,android高斯模糊

    高斯模糊 param context param sentBitmap param radius 0 lt radius lt 25 return SuppressLint NewApi public static Bitmap fastB
  • 【HUAWEI】PPP&PPPoE配合Radius认证配置案例

    背景 对于在一个大的园区网 要保证接入的安全性和合法性 有许多种手段 对于到端的接入用户 可以使用802 1X 对于移动办公人员 可以使用SSL 可以配合使用IPS 防火墙 上网行为管理等手段 不过 对于网关分布的网络呢 或者说 公司合并
  • 如何替代即将淘汰的Flash方案?

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由MarsBoy发表于云 社区专栏 导语 Web技术飞速发展的如今 我们在感受新技术带来的便捷和喜悦的同时 也时常在考虑着一个问题 老技术如何迁移 正如本文的主题一样 Flash
  • unity 项目仿cs知识点

    一 简介 1 人物部分 a 人物移动 b 镜头旋转 c 玩家开枪 动画 音频 枚举 弹孔 倍镜 2 敌人部分 a 敌人克隆 b 走向玩家 距离 方向 朝向 点乘 叉乘 二 人物部分 1 人物移动 CharacterController c
  • 几种主流国产linux操作系统配置pyqt5环境说明

    一 银河麒麟桌面 pyqt5已安装 直接运行就行 二 银河麒麟服务器 python3 get pip py local bin pip3 install pyqt5 python3 test1 py This application fai
  • JavaScript中的深拷贝

    1 什么是深拷贝 浅拷贝只是解决了第一层的拷贝问题 拷贝第一层的 基本类型值 以及第一层的 引用类型地址 并没有递归拷贝第二层以后的属性 深拷贝会拷贝所有的属性 拷贝的属性指向动态分配的内存 当对象和它所引用的对象一起拷贝时即发生深拷贝 深
  • C语言头插法创建双链表

    1 问题描述 使用头插法创建双链表 2 与单链表不同的是 双链表的结构体中多了一个变量就是指向当前节点的前驱节点 这样我们在循环遍历的时候可以通过当前节点的前驱指针找到前驱节点 在创建双链表的时候比单链表多了一个步骤就是对于前驱指针的操作
  • OpenMMLab OpenMMLab mmdeploy v1.1.0模型部署(一)

    一 MMDepoly整体框架 模型部署是指把机器学习训练生成的算法模型 部署到各类云 边 端设备上去 并使之高效运行 从而将算法模型实际地应用到现实生活中的各类任务中去 从而实现AI 的智能化转型 目前 我们已经支持 5 个算法库和 5 种
  • 动态规划:国王与金矿

    题目解析 有一个国家发现了5座金矿 每座金矿的黄金储量不同 需要参与挖掘的工人数也不同 参与挖矿工人的总数是10人 每座金矿要么全挖 要么不挖 不能派出一半人挖取一半金矿 要求用程序求解出 要想得到尽可能多的黄金 应该选择挖取哪几座金矿 第
  • 乔宇:深度模型让机器理解场景

    点击上方 深度学习大讲堂 可订阅哦 编者按 所谓场景 无论是 万家灯火 亦或是 巴山夜雨 于人是一种直观自然的感受 然而 对于机器而言 再多的温情脉脉 都也只是计算机世界冰冷的二进制符号 这区别的背后 其实是人在成长过程中形成的对世界的认知
  • OpenMV IDE通信协议分析

    OpenMV IDE通信协议分析 OpenMV IDE 通过usb cdc模式连接板端 也就是usb上虚拟了一个串口 基于串口实现了一套指令应答的交互协议 早期基于stm32 usb口实现 目前openmv适配扩展到多芯片上ide dbg调
  • linux循环结构和选择结构,Shell脚本:选择结构、循环结构、

    1 选择结构 1 选择结构的定义 选择结构是程序中带有判断的一种逻辑结构 只有符合一定的条件 程序体才会被执行 2 Linux shell 选择结构分类 if then控制结构 case esac控制结构 if then 控制结构 单分支