shell中的case语句和循环语句

ops/2024/11/19 12:26:04/

文章目录

  • 🍊自我介绍
  • 🍊shell中的case语句
    • 匹配常量
    • 匹配变量
    • 匹配字符串列表
  • 🍊循环语句
    • while 循环
    • for 循环
      • 单词表通过逐个列出单词
      • 通过变量中的数据
      • 通过命令行传输单词表


你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~


🍊自我介绍

  Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式方面的相关内容。


🍊shell中的case语句

格式:

case 字符串变量 in模式1)命令列表1;;模式2)命令列表2;;模式3)命令列表3;;*)命令列表n
esac功能:查看字符串变量和下列哪个模式匹配,找到对应的模式后,执行对应的命令列表。
若是所有模式都不匹配,则默认执行* 下面的命令列表n。

匹配常量

#! /bin/bashecho -n "Input String : "
read STRcase $STR in"ABC")echo "ABC";;"123")echo "123";;"AC" | "BC" | "1")echo "AC or BC or 1";;*)echo "Other"
esac

匹配变量

#! /bin/bashecho -n "Input String : "
read STRVAR=`hello`case $STR in"ABC")echo "ABC";;"$VAR")echo "$VAR";;*)echo "Other"
esac

匹配字符串列表

#! /bin/bashecho -n "Input String : "
read STRcase $STR in"ABC")echo "ABC";;[1235aw])echo "$STR in [1235aw]";;[0-2])echo "$STR in [0-2]";;*)echo "Other"
esac

🍊循环语句

while 循环

格式:

while 判断条件
do命令列表
done

代码示例:

#! /bin/bashsum=0
i=1while [ $i -le 100 ]
dosum=`expr $sum + $i`i=`expr $i + 1`
doneecho "sum = $sum i = $i"

for 循环

格式:

for 变量名 in 单词表
do命令
done工作原理:
(1)循环的次数由单词的个数来决定
(2)每次从单词表中取一个单词给变量,然后执行命令,直到所有的单词全部被取出来构造单词的方法:
(1)直接在in后面逐个单词写出来
(2)通过变量来获得——命令置换

示例代码1:

单词表通过逐个列出单词

#! /bin/bashi=1for var in "world1" "hello2" "shell3"
doecho $i : $vari=`expr $i + 1`
done

示例代码2:

通过变量中的数据

#! /bin/bashi=1list=`ls /`echo $list | wc -w  //wc -w 列出当前目录下的文件个数for var in $list
doecho $i : $vari=`expr $i + 1`
done

示例代码3:

通过命令行传输单词表

#! /bin/bashi=1for var in $@
doecho $i : $vari=`expr $i + 1`
done

http://www.ppmy.cn/ops/134968.html

相关文章

基于单片机的风能太阳能供电的路灯智能控制系统设计(论文+源码)

1系统总体设计 本课题为风能太阳能供电的路灯智能控制系统设计,系统的主要功能设计如下: (1) 供电模块:采用太阳能板以及风机模拟风扇充电,经过充电电路给锂电池进行充电。再由锂电池给照明模块以及整个项…

pxe自动装机(centos)

概述 PXE(Preboot Execution Environment)是一种允许计算机通过网络启动自己的操作系统的技术。它允许计算机在缺少本地存储设备或操作系统的情况下,从远程服务器上下载并执行操作系统。PXE通常用于无盘站点或远程支持,可以通过网…

Java进阶(JVM)

Java进阶(一) 一. JVM 1.1 为什么学习JVM 首先面试需要 高级程序员也更需要了解JVM 1.2 JVM作用 JVM负责把编译后的字节转换为机器码 1.3 JVM内部构造 1.3.1 类加载部分: 负责把硬盘上字节码加载到内存中(运行时数据区) 1.3.2 运行时数据区: …

RN开发搬砖经验之—React Native(RN)应用转原生化-Android 平台

在过去的一年中,我的主要工作聚焦于将一个基于React Native(RN)框架开发的Android应用逐步转化为原生应用。我们采取了分阶段实施的策略,首先着手将应用中的二级和三级页面的核心功能以原生代码的形式进行重构。在这一过程中&…

鸿蒙next版开发:相机开发-元数据(ArkTS)

在HarmonyOS 5.0中,ArkTS提供了对相机元数据的访问能力,这对于开发者在相机应用中获取图像的详细信息非常有用。元数据(Metadata)是对相机返回的图像信息数据的描述和上下文,比如照片或视频中识别人像的取景框坐标等信…

Spring Boot汽车资讯:科技与速度的新纪元

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了汽车资讯网站的开发全过程。通过分析汽车资讯网站管理的不足,创建了一个计算机管理汽车资讯网站的方案。文章介绍了汽车资讯网站的系统分析部分&…

缓存及其不一致

在实际开发过程中,一般都会遇到缓存,像本地缓存(直接在程序里搞个map也可以,但是可能会随着数据的增长出现OOM,建议使用正经的本地缓存框架,因为自己实现淘汰策略啥的挺费劲的)、分布式缓存&…

Acwing342

这个代码实现了一种结合 连通块分解、拓扑排序 和 Dijkstra 算法 的复杂图的最短路径计算方法,适用于含有两类边的图结构:普通边(在连通块内)和特殊边(跨连通块)。 以下是详细的代码讲解,逐步解…