2018-6-19bash编程之循环
我们继续将bash脚本编程,回顾一下程序的执行流程,分别为:
顺序执行 选择执行 循环执行
而对于循环执行来说,其分类涉及到以下几种:
for, while, until
每个循环都有执行条件和退出条件,这样的话才能够执行该循环,而且一旦进入之后也不能够无限期的循环,所以还要有退出条件,将循环结果用于其它代码进行计算执行,而各个分类的进入循环和退出循环的条件是有所区别的。
进入条件:for:列表元素非空;while:条件测试结果为"真";until:条件测试结果为"假";退出条件:for:列表元素遍历完成;while:条件测试结果为"假";until:条件测试结果为"真";
一、循环控制语句
1.1 contunue语句
循环控制语句:contunue:提前结束本轮循环,而直接进入下一轮循环判断;
while CONDITION1; doCOM1...if CONDITION2; thencontinuefiCMDn...done
执行continue之后,COMDn之后的语句都不会在执行,因此,该循环则结束,它用于在循环体语句当中的中间的某一个位置。
1.2 break语句
break
的作用不是结束本轮循环,而是直接跳出并结束循环,它的用法和continue语句的格式一样。
break:提前跳出循环;while CONDITION1; doCOMD1...if CONDITION2; thenbreakfiCMDn...done
创建死循环:while true; do循环体done
sleep命令:sleep - delay for a specified amount of timesleep NUMBER
由于没有退出条件,所以这是死循环,但我们不能看着它一直循环下去,我们必须得让它满足某个条件时必须让其退出该循环去执行其它指令,那么它的退出方式为当某个条件满足时,可让循环体去执行break命令。
退出方式:某个测试条件满足时,让循环体执行break命令;
示例:每隔3秒钟系统以上获取已经登录用户的信息;其中,如果logstash用户登录了系统,则记录于日志中,并退出;
#!/bin/bash # while true; doif who | grep "^li\>" &> /dev/null; thenecho "user li login."breakfisleep 3echo "user li not login." doneecho "$(date +"%F %T") li logged on." >> /tmp/user.log
二、循环的特殊用法
2.1 while循环的特殊用法
while循环的特殊用法(遍历文件的行):while read VARIABLE; do循环体done < /PATH/FROM/SOMEFILE
依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将其赋值给VARIABLE变量;
示例:找出ID号为偶数的用户,显示其用户名、ID、及默认shell;
#!/bin/bash #while read line; dousername=`echo $line | cut -d: -f1`userid=`echo $line | cut -d: -f3`usershell=`echo $line | cut -d: -f7`if [ $[$userid%2] -eq 0 ]; thenecho "$username, $userid, $usershell"fi done < /etc/passwd
2.2 for循环的特殊用法
for
循环的特殊用法和while的循环遍历也是一样的,其该用法为:
for循环的特殊用法:for ((控制变量初始化;条件判断表达式;控制变量的修正语句));do循环体done
对于括号里的条件来说,作为控制变量初始化,是仅在循环代码开始运行时只执行一次,而在控制变量的修正表达式是在每轮循环结束会先控制遍历修正运算,而后在做条件判断。
控制变量初始化:仅在循环代码开始运行时执行一次;控制变量的修正语句:每轮循环结束会先进行控制遍历修正运算,而后在做条件判断;
#!/bin/bash # declare -i sum=0 for ((i=1;i<=100;i++)); dolet sum+=$i done echo "Sum: $sum"
转载于:https://blog.51cto.com/tianxie/2130712
2018-6-19bash编程之循环相关推荐
- 软件工程(2018)结对编程第一次作业
软件工程(2018)结对编程第一次作业 本次作业要求对结对编程队友进行一次代码审查. 代码审查表如下 功能模块名称 图的邻接矩阵输出 审查人 李宗健 审查日期 2018/4/6 代码名称 图的邻接矩阵 ...
- shell编程之循环语句
shell编程之循环语句 文章目录 shell编程之循环语句 一.for循环语句 1. for循环语法结构 ㈠ 列表循环 2. 应用案例 二.while循环语句 1. while循环语法结构 2. 应 ...
- 2018深信服java笔试题,深信服2018秋招编程题
深信服2018秋招编程题 深信服2018秋招编程题 第一题: 其中,reverse函数的代码实现如下: 1. unsigned int reverse(unsigned int num) { unsi ...
- 京东2018秋招编程题
C++开发工程师 京东 2018秋招编程题 (代码后续更新...) 1.神奇数 将一个数n的各数位分成两部分,两部分之和相等,则称这个数为神奇数.比如242分成[2,2].[4].输入一个范围[l, ...
- 滴滴2018秋招编程题
滴滴 2018秋招 编程题 1.寻找丑数 丑数的定义是,只包含因子2.3和5的数称作丑数.比如6和8是丑数,14不是丑数,因为含有因子7.输入一个整数n,输出第n个丑数.我们认为第一个丑数是1. 解析 ...
- PowerMILL 2018四五轴编程后处理宏制作视频教程
PowerMILL 2018四五轴编程后处理宏制作视频教程 链接:https://pan.baidu.com/s/1lFUeu80IbVlhDtqff1kaFA 提取码:wrpu
- PowerMill 2018三五轴编程+后处理制作视频教程
PowerMill 2018三五轴编程+后处理制作视频教程 链接:https://pan.baidu.com/s/1Wlk36admxCZdFj0hEuENVw 提取码:l939
- 魔法币 java_网易2018校招笔试编程题-魔法币 java实现
魔法币 原题 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币. 魔法机器1:如果投 ...
- PowerMILL 2018四五轴编程后处理宏制作
PowerMILL 2018四五轴编程后处理宏制作视频教程 链接:https://pan.baidu.com/s/1I20Uo2FN2bRKmqm3hG1uzg 提取码:xcpj
- Shell编程之循环语句(详细讲解以及脚本案例)
Shell编程之循环语句(详细讲解以及脚本案例) 文章目录 一.for语句的结构 (一).for语句应用实例 1.示例1--批量添加用户 2.示例2--使用根据IP地址检查主机状态 3.示例3--fo ...
最新文章
- [HEOI2016/TJOI2016]排序
- 使用独立mysql_MYSQL建立独立数据库以及独立数据库用户详细教程,利用PHPstudy自带的MySQL-Front...
- basys2数码管共阳还是共阴_数据选择器Multiplexer || 数码管动态显示 ||实现逻辑函数 || 重难考点 || 数电...
- 风变python怎么样_Python取代Excel?风变编程带你了解如何更好地学Python!
- Asp.net Core 添加 EF 工具并执行初始迁移错误解决方法(Add-Migration Initial---Build failed.)
- Google App Engine已经支持JAVA了
- Leetcode 刷题笔记(十六) —— 二叉树篇之二叉搜索树的属性
- String的创建和常量池的关系,intern()相关问题
- 网络流(二) 最大流算法的实现
- 学生来看我,我自我满足...........
- 从招式与内功谈起——设计模式概述(三)
- 小白到学会python要多久_零基础小白多久能学会python
- CnPeng说:“快应用”的慢节奏
- ubuntu系统 有线网络无法通过网页认证上网
- PC-Lint的使用方法
- html5 健身房模板,健身房瘦身HTML模板
- 百度地图API学习---隐藏百度版权标志
- CTR---DIN原理,及deepctr组网实现DIN
- ERP-库存与存货-原料采购单
- 0成本涨粉过万详细复盘,新手也可100%实操上手!
热门文章
- spark BlockManager如何实现shuffle
- flink中的HybirdmemorySegment
- java内存区_基于jvm java内存区域的介绍
- strtotime 获取一个月的开始 或者一个月的结束
- VMware的宿主模式
- 安装虚拟机Centos系统并安装Docker过程记录
- 贴片电阻上写着“0”,所谓的“零欧电阻”,在电子电路中的用处很大
- python怎么实现音乐快进_Python 超简单3行代码提取音乐高潮(附批量提取)
- G1垃圾收集器全视角解析
- 利用python求解度中心性