第十章 流程控制之for循环
1 语法
#===========》Shell风格语法for 变量名 [ in 取值列表 ]do 循环体done#===========》C语言风格语法for ((初值;条件;步长))do 循环体done
2 循环控制及状态返回值的应用实践

2.1 break案例
#!/bin/bashfor i in {1..5};do echo $i if [ $i == 3 ];then break fi echo $idoneecho "ok"[root@xujun1270 ~]# sh break.sh 11223ok脚本中,本意是要循环执行1~5,但是当i等于3时,跳出循环,后面的4和5就不会执行了,但是因为只是跳出循环,所以脚本还是会继续执行,所以就出来后面的ok
2.2 continue案例
#!/bin/bashfor i in {1..5};do echo $i if [ $i == 3 ];then continue fi echo $idoneecho "ok"[root@xujun1270 ~]# sh continue.sh 112234455okcontinue就是在循环中,跳过的是本次循环,而不是整个循环,所以只跳过了3,但是循环还会执行下去
2.3 exit案例
#!/bin/bash#for i in {1..5};do echo $i if [ $i == 3 ];then exit fi echo $idoneecho "ok"[root@xujun1270 ~]# sh exit.sh 11223exit就是直接退出整个shell脚本
3 案例
3.1 案例1:shell风格的for
for i in {1..10};do echo $idone
3.2 案例2:c语言风格的for
for ((i=1;i<=10;i++));do echo $idone
3.3 案例3:批量修改文件名
#!/bin/bashfor n in `ls|grep "html$"`;do mv $n `echo $n|cut -c 1-11`oldgirl.htmldone
3.4 案例4:批量创建用户和密码
#!/bin/bashread -p "请输入创建的用户名信息: " nameread -p "请输入创建的用户数量: " countfor i in `seq -w $count`do echo $name$i useradd $name$i &>/dev/null echo 123456 | passwd --stdin $name$i &>/dev/null id $name$i &>/dev/null [ $? -eq 0 ] && echo "$name$i create is ok" || echo "$name$i create is failed"done