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脚 ...
随机推荐
- 23、表空间及段区块_1(段区块管理、pctfree、数据块结构、行迁移、高水位)
oracle数据库的物理存储结构 1.spfile:参数文件 2.controlfile:控制文件 3.datafile:数据文件 4.redo log 5.arch:归档日志 oracle数据库的d ...
- 用MySQL5.7的客户端连接MySQL8.0的服务端竟然报错,不是说好向下兼容吗?
在默认条件下,用MySQL5.7的客户端连接MySQL8.0的服务端竟然报错,不是说好向下兼容吗? WHAT?报错如下:[root@node234 ~]# mysql -ushukuinfo -p'1 ...
- JConsole 远程监控Tomcat服务
JConsole 远程监控Tomcat服务 1.概述 JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,不过此JVM需要使用可管理的模式启动.如果要把一个应用以可管理的形式启动, ...
- Python之pandas读取Excel
#! -*- coding utf-8 -*- """ 模块功能:读取当前文件夹下的Source里的Excel文件,显示其相关信息 说明:默认把Excel的第一行当做列名 ...
- BeautifulSoup(bs4)细致讲解
BeautifulSoup(bs4) BeautifulSoup是python的一个库,最主要的功能是从网页爬取数据,官方是这样解释的:BeautifulSoup提供一些简单,python式函数来处理 ...
- canvas(八)绘制图片和坐标转换
1.绘制图片 相关api及其参数:ctx.drawImage() 参数 说明 参数一 图片对象 参数二,三 可选,图片裁剪的基点(原图左上角为原点) 参数四,五 可选,图片裁剪区域的宽高(基于原图大小 ...
- ae基于面要素生成柱状图
IFeatureLayer fl = axMapControl1.get_Layer(0) as IFeatureLayer; IGeoFeatureLayer pGeoFeatLyr = fl as ...
- Dapper.SimpleCRUD:Dapper的CRUD助手
我们在项目开发中,面对一些高并发.大数据量等业务场景,往往对SQL语句的性能要求比较高,这个时候为了方便灵活控制,我们一般就会编写原生的SQL. Dapper就是一个非常高性能的轻量级ORM框架,Da ...
- Jetpack Compose学习(15)——Pager组件的使用(对标ViewPager)
原文地址: Jetpack Compose学习(15)--Pager组件的使用(对标ViewPager)-Stars-One的杂货小窝 从名字可以看出,Pager这个就是ViewPager的替代产物 ...
- 关于Git上传项目报错error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
问题 今天用Git上传项目时,最后一步push时命令行报错 error: RPC failed; HTTP 413 curl 22 The requested URL returned error: ...