shell脚本中的循环(for循环,while循环)及break、continue的用法示例
Shell脚本中也算是一门简易的编程语言了,当然循环是不能缺少的。常用到的循环有for循环和while循环。下面就分别介绍一下两种循环的结构。
【for循环】:
Shell脚本中的for循环示例:
#! /bin/bash
## author:Xiong Xuehao
## Use for in this script.
for i in `seq 1 5`; do
echo $i
done
脚本中的seq 1 5 表示从1到5的一个序列。你可以直接运行这个命令试下。脚本执行结果为:

通过这个脚本就可以看到for循环的基本结构:
for 变量名 in 循环的条件; do
command
done
循环的条件那一部分也可以写成这样的形式,中间用空格隔开即可。你也可以试试,for i in `ls`; do echo $i; done 和 for i in `cat test.txt`; do echo $i; done 。
【while循环】:
再来看看这个while循环,基本格式为:
while 条件; do
command
done
#! /bin/bash
## author:Xiong Xuehao
## Use while in this script. a=10
while [ $a -ge 1 ];do
echo $a
a=$[$a-1]
done
脚本的执行结果为:

另外你可以把循环条件忽略掉,笔者常常这样写监控脚本。
while :; do
command
done
示例:
#! /bin/bash
## author:Xiong Xuehao
## Monitoring alarm. while :
do
load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`
if [ $load -gt 10 ]
then
/usr/local/sbin/mail.py xxxxxxxxxx@qq.com "load high" "$load"
fi
sleep 30
done
Shell脚本(for循环,while循环里面使用 break跳出循环,continue结束本次循环)
在看脚本之前,我们需要知道continue和break的意思:
continue是继续的意思,也就是当运行结果不满足条件时,在从头循环一遍。(通俗理解是:跳过本次循环剩余部分,直接开始下一轮循环)
break是跳出循环的意思。(通俗理解是退出整个循环)。
注意break、continue仅在`for', `while', 或者`until' 循环中有意义。
下面先来看for循环中使用break的例子:有5个人参加抢答游戏,但是只有3个名额剩余的都淘汰。从1,2,3,4,5报数,数到3时结束。
#! /bin/bash
## author:Xiong Xuehao
## 循环语句里面的continue和break. for i in `seq 1 5`; do
echo -n "$i"
if [ $i -ge 3 ]; then
echo "名额满了,剩下的都离开吧"
break
else
echo "继续"
fi
done
如图:

下面来看for循环中使用continue的例子:有5个人参加抢答游戏,前两名2个名额,迟到的都罚站。从1,2,3,4,5报数,从第3名开始及以后的都罚站。
#! /bin/bash
## author:Xiong Xuehao
## 循环语句里面的continue和break. for i in `seq 1 5`; do
echo -n "$i"
if [ $i -ge 3 ]; then
echo "迟到了,罚站"
continue
else
echo "继续"
fi
done
如图:

上面两个例子注意看区别哦。
再看一个for循环的脚本,将break个continue结合起来使用的例子:
要求输入一个数字,如果输入内容不是数字返回一个字符串提醒,如果输入为空也返回一个字符串提醒,如果是输入数字则将该数字显示出来。
#! /bin/bash
## author:Xiong Xuehao
## 循环语句里面的continue和break. while :
do
read -p "please input a number: " n
if [ -z "$n" ]
then
echo "提醒,你需要输入内容."
continue
fi
n1=`echo $n|sed 's/[0-9]//g'`
if [ ! -z "$n1" ]
then
echo "输入错误,你只能输入一个纯数字."
continue
fi
break
done
echo $n
执行如图:

【完】
shell脚本中的循环(for循环,while循环)及break、continue的用法示例的更多相关文章
- 在shell脚本中进行条件控制以及使用循环
转载请标明:http://www.cnblogs.com/winifred-tang94/ if条件语句语法: if [ 条件表达式 ] then 代码 else 代码 fi 注意:在上面的if条件语 ...
- Shell脚本中的逻辑判断、文件目录属性判断、if的特殊用法、case判断
1.Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi格式2:if 条件; then 语句; else 语句; fi格式3:if …; then … ;elif …; then ...
- shell脚本中,for基于列表进行循环的实现方法
需求描述: 在写脚本中需要这么个需求,需要对一个列表中的值进行循环 比如,列表中的值mysqld,zookeeper,hbase 简单来说,for基于列表值的循环. 脚本测试过程: 1.测试脚本 #! ...
- shell 脚本中所有循环语法
写出 shell 脚本中所有循环语法 for 循环 : for i in $(ls);do echo item:$i done while 循环 : #!/bin/bash COUNTER=0 whi ...
- centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课
centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 ...
- shell脚本中select循环语句用法
shell脚本中select循环语句 1. 脚本中select的语法格式 select VAR in LIST do command1 command2 ... ... commandN done s ...
- shell脚本中常见的一些特殊符号和作用详解
这篇文章主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下 在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我 ...
- [转帖]Shell脚本中的break continue exit return
Shell脚本中的break continue exit return 转自:http://www.cnblogs.com/guosj/p/4571239.html break结束并退出循环 cont ...
- 数组-在Shell脚本中的基本使用介绍
Shell脚本在运维工作中是极其重要的,而数组在shell脚本里的运用无论是在循环或运算方面都是非常实用的一个环节.下面是对shell脚本中数组方面一些操作在此进行记录,希望能帮助到有兴趣的朋友~1. ...
- Shell脚本中的并发(转)
转自http://blog.csdn.net/wangtaoking1/article/details/9838571 主要记录一下Shell脚本中的命令的并发和串行执行. 默认的情况下,Shell脚 ...
随机推荐
- HAL+CubeIDE,输入输出重定向
①将以下代码段复制到usart.c里: /******************************************************************************* ...
- 接口测试中Groovy引擎的接入实现!
接口测试中Groovy可以作为上下游接口参数化传递的前置脚本和后置脚本使用,无缝衔接Java语法,groovy的引入对于动态参数化的设置方便很多. 其中核心部分就是接入groovy的引擎,下面介绍gr ...
- 6.Kubernetes集群管理工具kubectl
Kubernetes集群管理工具kubectl 概述 kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署 命令格式 ...
- 4.使用二进制方式搭建K8S集群
使用二进制方式搭建K8S集群 注意 [暂时没有使用二进制方式搭建K8S集群,因此本章节内容不完整... 欢迎小伙伴能补充~] 准备工作 在开始之前,部署Kubernetes集群机器需要满足以下几个条件 ...
- 从0搭建一个FIFO模块-01(基础知识)
1. FIFO介绍 基本概念 FIFO(First In, First Out)是一种常用的数据结构,用于存储和处理数据.它的工作原理与排队的顺序类似,遵循"先进先出"的原则.即, ...
- 干货分享:Air780E开发板如何使用?
一.概述 CORE-AIR780E 开发板是合宙通信推出的基于 Air780E 模组所开发的,包含电源,SIM 卡,USB,天线,音频等必要功能的最小硬件系统.以方便用户在设计前期对 Air780 ...
- PC自动化之pywinauto
官方文档: https://pywinauto.readthedocs.io/en/latest/contents.html [安装] pip install pywinauto [使用] from ...
- python之日志记录loguru
安装: pip install loguru 基础使用: from loguru import logger logger.debug("This is a debug...") ...
- offline RL · PbRL | LiRE:构造 A>B>C 的 RLT 列表,得到更多 preference 数据
论文标题:Listwise Reward Estimation for Offline Preference-based Reinforcement Learning,ICML 2024. arxiv ...
- DevEco Studio:状态管理与事件处理
DevEco Studio:状态管理与事件处理 引言 在现代前端开发中,状态管理和事件处理是构建交互式应用的核心.DevEco Studio,作为华为推出的开发环境,支持开发者使用TypeScript ...