2.1、for循环
1)遍历/列表式循环
——根据变量的不同取值,重复执行命令序列
格式:
for 变量名 in 值列表
do
命令序列
done
示例:输出在线的主机IP
#!/bin/bash for i in `seq 254` do (ping -i 0.1 -c 1 192.168.10.$i &> /dev/null if [ $? -eq 0 ];then echo "192.168.10.$i is on line!" fi) & done
() 小括号的作用是吧当前的程序放到子shell执行
& 把程序放入后台执行
2)c语言风格的for循环
——通过变量控制,条件成立时循环
——步长可控次数
格式:
for ((初值;条件;步长控制))
do
命令序列
done
实例:输出10以内的奇数
for ((i=1;i<10;i+=2)) do echo $i done
2.2、while循环结构
——条件式循环
——反复测试条件,只要条件成立就执行命令序列
格式:
while 条件测试
do
命令序列
done
2.3、until循环结构
——当条件不成立时循环执行命令序列。与while相反
格式:
until 条件测试
do
命令系列
done
实例参考我写的脚本:
http://huanglianfeng.blog.51cto.com/4813074/1362964
3、case分支结构
——case分支属于匹配执行的方式,它针对指定的变量预先设置一个可能的取值,判断该变量的实际取值是否与预设的某一个值相匹配,如果匹配上了,就执行相应的一组操作,如果没有任何值能够匹配,就执行预先设置的默认操作。
格式:
case “变量值” in
“值1”)
命令序列1;;
“值2”)
命令序列2;;
“值3”)
命令序列3;;
“值4”)
命令序列4;;
“值5”)
命令序列5;;
…………………………………….
*)
默认命令序列;;
esca
实例参考我写的系统服务脚本:
http://huanglianfeng.blog.51cto.com/4813074/1363488
3、其他控制语句
(1)break
——跳出当前所在的循环结构,执行循环体后的语句
(2)continue
——跳出循环语句余下的语句,重新判断条件一边执行下一个循环
(3)exit
——退出脚本,默认的返回值是0
(4)return
——执行脚本或函数时指定返回值,不会结束脚本。通常用来给函数设置返回值。否则出现错误信息,但不会影响脚本执行,如下: