20.10 for循环
20.11/20.12 while循环
20.13 break跳出循环
20.14 continue结束本次循环
20.15 exit退出整个脚本
20.10 for循环
语法格式
1 | for 变量名 in 条件; do …; done |
计算出0到100的总和
1 | [root@kun05 shell]# vim for1.sh |
1 | [root@kun05 shell]# sh for1.sh |
遍历/etc目录并把目录列出来
1 | [root@kun05 shell]# vim for2.sh |
注意
:for循环是以空格
作为分隔符 ,因此文件名中到空格的要注意1
2
3
4
5
6
7
8[root@kun05 for]# touch 1 2
[root@kun05 for]# touch 3\ 4.txt
[root@kun05 for]# ll
总用量 0
-rw-r--r-- 1 root root 0 7月 14 05:07 1
-rw-r--r-- 1 root root 0 7月 14 05:07 2
-rw-r--r-- 1 root root 0 7月 14 05:07 3 4.txt
1 | [root@kun05 for]# for i in `ls .`;do echo $i;done |
这里for循环把3 4.txt 分为了两个文件
20.11/20.12 while循环
语法格式
1 | while 条件; do … ; done |
每隔30秒查看系统负载,当大于10时发邮件
1 | [root@kun05 shell]# vim while1.sh |
1 | [root@kun05 shell]# sh -x while1.sh |
:
ture
1
都是代表为正
因此while :
就是一个死循环
为了不让while脚本不意外终止 可以使用screen
命令 再到screen下执行此脚本
提示让用户只能输入数字
1 | [root@kun05 shell]# vim while2.sh |
1 | [root@kun05 shell]# sh while2.sh |
echo $n|sed 's/[0-9]//g
把数字给过滤掉来判断是否有其他字符
20.13 break跳出循环
1 | [root@kun05 shell]# vim break.sh |
1 | [root@kun05 shell]# sh break.sh |
20.14 continue结束本次循环
忽略continue之下的代码,直接进行下一次循环
1 | [root@kun05 shell]# vim continue.sh |
1 | [root@kun05 shell]# sh continue.sh |
20.15 exit退出整个脚本
1 | [root@kun05 shell]# vim exit.sh |
1 | [root@kun05 shell]# sh exit.sh |
返回exit 后面设置的值1
2[root@kun05 shell]# echo $?
1
总结
break
,continue
都是在for
while
循环中使用的- break出现时候会跳出本次循环 直接忽略掉了break后面的代码
- continue出现时候也会忽略掉了continue后面的代码并重新再来执行循环
- exit直接跳出脚本 一般exit 后面会跟一个数字 给用户返回该值