2.1for循环

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执行

& 把程序放入后台执行





2c语言风格的for循环

——通过变量控制,条件成立时循环

——步长可控次数


格式:

for ((初值;条件;步长控制))

do

   命令序列

done

实例:输出10以内的奇数


for ((i=1;i<10;i+=2))
do
        echo $i
done


2.2while循环结构

——条件式循环

——反复测试条件,只要条件成立就执行命令序列

格式:

while 条件测试

do

命令序列

done








2.3until循环结构

——当条件不成立时循环执行命令序列。与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、其他控制语句


1break

——跳出当前所在的循环结构,执行循环体后的语句

2continue

——跳出循环语句余下的语句,重新判断条件一边执行下一个循环

3exit

——退出脚本,默认的返回值是0

4return

——执行脚本或函数时指定返回值,不会结束脚本。通常用来给函数设置返回值。否则出现错误信息,但不会影响脚本执行,如下:



5shift

——位移函数,把脚本的位置变量的值顺序想左移动一位,并把没有值的位置变量删除