码迷,mamicode.com
首页 > 其他好文 > 详细

bash编程之:流程控制

时间:2015-09-18 18:50:49      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:流程控制   for   while   until   循环控制   

日期: 2015年09月13日


流程控制

循环语句:for, while, until


循环:将循环体代码执行0、1或多次

进入条件:进入循环的条件

退出条件:循环终止的条件



<<========================================for循环】========================================>>

for循环:


for VARIABLE in LIST; do

循环体

done



进入条件:列表非空

退出条件:当列表遍历结束



LIST: 是由一个或多个空格或换行符分隔开的字符串组成:

把列表的每个字符串逐个赋值给VARIABLE表示的变量



LIST的生成方法:

(1) 整数列表

(a) {start..end}

(b) $(seq [start[[step]]end])

(2) 直接给出列表

(3) glob

(4) 根据命令生成



示例:

使用for循环添加10个用户,user1-user10

技术分享


运行脚本测试:

技术分享




<<======================================while循环】======================================>>

while循环:


while CONDITION; do

循环体

控制变量的修正表达式

done


进入条件:当CONDITION为"真";

退出条件:当CONDITION为"假";



示例1

使用while循环求100以内所有正整数之和

技术分享


运行脚本测试:

技术分享



示例2

使用while循环打印九九乘法表

技术分享


运行脚本测试:

技术分享

 

 

 

<<======================================until循环】======================================>>

until循环:

 

until CONDITION; do

循环体

循环控制变量的修正表达式

done

 

进入条件:当CONDITION为"假"时

退出条件:当CONDITION为"真"时

 

示例:

使用until循环求100以内所有正整数之和

技术分享

 

运行脚本测试:

技术分享




<<======================================【循环控制】======================================>>

 

循环控制:

 

continue [n]: 提前结束本轮循环,而直接进入下一轮

break [n]: 提前结束循环

 

使用格式:

while CONDITION; do

if CONDITION2; then

break [n]

fi

done

 

 

while CONDITION; do

...

if CONDITION2; then

continue [n]

fi

....

done

 

 

死循环:

while ture; do

循环体

if CONDITION; then

break

fi

done

 

 

until false; do

循环体

if CONDITION; then

break

fi

done

 

示例1

求100以内所有偶数之和

技术分享


运行脚本测试:

技术分享



示例2

给脚本传递一个用户命名,如果该用户登录到该系统,则显示其已登录,如果没有检测到该用户

登录,则显示该用户未登录,休眠3秒后继续检测,如此重复,直到用户登录为止才结束循环。

技术分享

 

运行脚本测试:

技术分享


登录用户:

技术分享

 

此时,检测到该用户已登录,则显示用户已登录,然后结束循环

技术分享

 



<<======================================【特殊用法】======================================>>

whilefor循环的特殊用法

 

while循环的特殊用法:

遍历文件的每一行:

while read VARIABLE; do

循环体

done < /PATH/FROM/SOME_FILE

 

 

示例:

找出UID为偶数的所有用户,显示整行用户信息

技术分享

 

运行脚本测试:

技术分享


 


for循环的特殊用法:

for ((expr1;expr2;expr3)); do

循环体

done

 

expr1:定义控制变量,并初始赋值

expr2:循环控制条件

进入条件:控制条件为"真"

退出条件:控制条件为"假"

expr3:修正控制变量

 

示例:

给变量i赋值=1,在变量i的赋值小于30时,每次往自身+1,直到i的赋值等于30时退出循环,

每一次循环都与数字5相乘,得出以下结果。

技术分享




bash编程之:流程控制

标签:流程控制   for   while   until   循环控制   

原文地址:http://yao3800.blog.51cto.com/1522113/1696030

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!