1、简介web
平时工做中有很多重复的工做,而且没法统计须要循环该执行多少次,这个时候就须要while或者until循环语句帮助你解决一些繁琐重复性的工做。而case 语句是匹配一个值或一个模式,若是匹配成功,执行相匹配的命令。通常咱们脚本会用到这个多分支选择结构。本章节就是介绍以上3个语句的简单入门用法。shell
2、shell循环语句ide
1.while循环语句函数
最多见的一种知足条件就进入循环的语句, 当条件知足时,while 重复地执行一组语句,直到条件不知足时,才退出 while 循环。命令行
语法:3d
PS:【判断条件请查看shell的条件判断语句相关知识】blog
while 循环的执行流程:ip
首先是对条件进行判断,若是条件成立,进入循环,执行 while 循环体中的语句(是 do 和 done 之间的语句,这样就完成了一次循环)源码
每一次执行到 done 的时候都会从新判断条件是否知足,若是知足,就进入下一次循环,继续执行 do 和 done 之间的语句,若是不知足,就结束整个 while 循环,执行 done 后面的其它 Shell 代码或者直接退出。工作流
例子1: 批量建立用户
运行结果:
例子2:计算从1加到1000的和
执行结果:
能够看到while语句的应用只是简单的一个循环语句,文本只是举一个简单的例子说明来展现while语句,实现复杂的工做仍是须要熟悉条件判断语句,这样才能更好地写出脚本。
2.until循环语句
和while实现一样的功能,可是流程不同,是一种不知足条件就执行循环的语句,直到条件知足就退出循环。
语法:
until循环的执行流程:
首先是条件进行判断,若是条件不知足,进入循环,执行until循环体中的语句(是 do 和 done 之间的语句,多是多个语句,这样就完成了一次循环)
每一次执行到 done 的时候都会从新判断条件是否不知足,若是不知足,就进入下一次循环,继续执行 do 和 done 之间的语句,若是知足,就结束整个until循环,执行 done 后面的其它 Shell 代码或者直接退出。
例子1: 批量建立用户(和while对比一下)
3、shell分支结构语句
1.分支结构:case语句(根据变量的不一样取值 ,执行不一样的操做)一般case结构和shell函数一块儿使用,给源码服务编写启动脚本。case 语句和 if...elif...else 语句,同一种类型都是多分支条件语句。
2.语法:
3.case 语句的工做流程:
case语句会取出变量中的值(就是你在命令行输入的值),而后与语句体中每一个分支的值逐一匹配。若是数值匹配,则执行对应分支的程序;若是数值不匹配,则依次进行下一个值的匹配;若是全部的值都不匹配则执行"*)","*"表明全部其余值中的程序,通常是写明变量有哪些能够填写。
4.注意点
(1)case 语句以"case"开头,以"esac"结尾。
(2)在每一个分支程序以后要以";;"(双分号)结尾,表明该程序段结束。
5.例子
(1)Ubuntu系统中iptables是没有启动脚本的,咱们能够经过case语句作一个简单的开启关闭脚本。定义Iptables配置存放位置/etc/iptables.rule【我作了一下基本的预设置】
执行结果以下:
这样设置了iptables的启动脚本是否是方便多了,只须要去修改配置文件,重启iptables脚本便可生效。按照这样的例子,本身能够把一些源码包的程序制做成一个启动脚本,赶忙去试一试吧!