本文共 2127 字,大约阅读时间需要 7 分钟。
for 循环用于重复整个对象列表,依次执行每个独立对象的循环内容,对象可以是命令行参数,文件名,或者任何以列表格式建立的东西。
格式 for variable in list do command done [root@master ~]# for i in 1 2 3;do echo $i;done #命令行参数 1 2 3 [root@master ~]# for i in /etc/ssh/*;do echo $i;done #文件名 /etc/ssh/moduli /etc/ssh/ssh_config [root@master ~]# for i in $(seq 3);do echo $i;done #列表格式之一 1 2 3 [root@master ~]# for((i=1;i<=3;i++));do echo $i;done #“(())”双括号语法扩展 1 2 3#for循环该后缀名
for i in ./* ;do echo $i;mv $i $i.jpg;done
./Img_00063.JPG ./Img_00064.JPG ./Img_00065.JPG ./Img_00066.JPG ./Img_00067.JPG ./Img_00068.JPG ./Img_00069.JPG ./Img_00070.JPG ./Img_00071.JPG ./Img_00072.JPG ./Img_00073.JPG ./Img_00074.JPG ./Img_00075.JPG ./Img_00076.JPG administrator@administrator-laptop:/mnt/isolinux/img/r610$ ls Img_00063.JPG.jpg Img_00067.JPG.jpg Img_00071.JPG.jpg Img_00075.JPG.jpg Img_00064.JPG.jpg Img_00068.JPG.jpg Img_00072.JPG.jpg Img_00076.JPG.jpg Img_00065.JPG.jpg Img_00069.JPG.jpg Img_00073.JPG.jpg Img_00066.JPG.jpg Img_00070.JPG.jpg Img_00074.JPG.jpg#找到*.sh文件,并去掉可执行权限!
for i in `find /data -type f -name "*\.sh"`; do chmod -x $i; done
while 循环 格式 while 条件退出状态为成功,执行循环 do 条件表达式 .... done l_dir=/root/sh while read line;do l_time=`date +'%Y-%m-%d %H:%M:%S'` echo $line echo "###$l_time" >>"$l_dir/ok" rsync -avz $line dongnan@192.168.5.82::svn/ --password-file="$l_dir/passwd" 2>>"$l_dir/err" 1>>"$l_dir/ok" sleep 2 done < "$l_dir/dir" #读取文件中的行[root@master ~]# i=3 #条件变量应该在循环体外部 [root@master ~]# while [ $i -ge 1 ];do echo $i;((i--));done 3 2 1 [root@master ~]# i=1 [root@master ~]# while ((i<=3));do echo $i;((i++)); done #“(())”双括号语法扩展 1 2 3 [root@master ~]# i=1 [root@master ~]# while true;do if [ $i -gt 3 ];then break;fi;echo $i;((i++));done #true 用于无限循环 1 #break 用于退出循环 2 3 until 循环 与 while 循环相反 格式 until 条件退出状态为失败,执行循环 do 条件表达式 .... done [root@master ~]# i=1 [root@master ~]# until [ $i -eq 5 ];do ((i++));if [ $i -eq 2 -o $i -eq 4 ];then continue;fi;echo $i;done 3 #continue 用于跳出本次循环,提前执行下一个循环操作 5
跳出循环
break 与 continue 区别 break 直接退出循环体,可以指定一个数值参数,用于退出第几层循环体,比如 break 2 退出两个循环体 continue 跳出本次循环,而不是退出循环体,提前执行下一次的循环操作。本文转自 dongnan 51CTO博客,原文链接:
http://blog.51cto.com/dngood/619273
转载地址:http://cvkia.baihongyu.com/