码迷,mamicode.com
首页 > 其他好文 > 详细

for 循环

时间:2018-06-18 01:13:48      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:break   not   用户   bin   null   user   tin   done   偶数   

循环语句: for 语法结构: 1、列表循环 for variable in {list} do command... done for variable in var1 var2 var3.. do command... done 2、非列表循环 for variable do command.. done 3、类C风格 for ((expr1;expr2;expr3)) -----eg: for ((i=50;i<=100;i++)) do command... done expr1:定义一个变量并且给初始值 expr2:根据某个条件决定循环的次数 expr3:变量以什么样的方式去改变 循环列表: for i in {1..10};do echo $i;done fo for i in;do echo $i;done 1 2 3 for ((i=1;i<=50;i++));do echo $i;done for ((i=50;i<=100;i++));do echo $i;done for ((i=1;i<=10;i+=2));do echo $i;done for i in {1..100..2};do echo $i;done ---从1到100,步长为2 for i in {0..100..2};do echo $i;done---从0到100,步长为2 for i in {0..100..3};do echo $i;done---从0到100,步长为3 for i in {100..50..5};do echo $i;done---从100到50,步长为5 for i in `seq 10`;do echo $i;done ---按顺序从1到10 for i in $(seq 10);do echo $i;done---按顺序从1到10 for i in $(seq 1 2 10);do echo $i;done---按顺序从1到10,步长为2 demo1:计算1-100之间的奇数之和 方法1: #!/bin/bash sum=0 for ((i=1;i<=100;i+=2)) do sum=$[$sum+$i] done echo "1-100之间的奇数和为:$sum" 方法2: #!/bin/bash sum=0 for i in {1..100..2} do #sum=$[$sum+$i] let sum=$sum+$i done echo "1-100之间的奇数和为:$sum" 方法3: #!/bin/bash sum=0 for i in `seq 1 100` do [ $[$i%2] -ne 0 ] && sum=$[$sum+$i] done echo "1-100之间的奇数和为:$sum" 方法4: #!/bin/bash sum=0 for i in `seq 1 100` do if [ $[$i%2] -eq 0 ];then continue else sum=$[$sum+$i] fi done echo "1-100之间的奇数和为:$sum" 计算1-50之间的偶数之和 循环控制: continue:重新开始下一次循环,继续。 break:打断,马上停止此次循环,执行循环体外的代码 exit:退出,退出循环 demo2:输入一个正整数,判断其是不是质数(素数) 质数:能被1和它自己本身整除的数 2 3 5 7 11 13 17... 思路: 1、如果所输入的整数能被其他整数整除,它就不是质数 $num%$i=0 2、根据上面的方法需要排除1和2 3、测试变量i的取值范围2开始到num-1 #!/bin/bash read -p "请输入你要判断的正整数:" num if [ $num -eq 1 ];then echo "$num不是质数";exit elif [ $num -eq 2 ];then echo "$num是质数";exit fi for i in `seq 2 $[$num-1]` do if [ $[$num%$i] -eq 0 ];then echo "$num不是质数";exit fi done echo "$num是质数" 练习: 1、批量添加3个用户,以u1-u5命名,并且同一加一个新组class,密码都为123 2、写一个脚本,局域网内,把能ping通的ip和不能ping通的ip分类,并保存到两个不同的文件中。IP范围(10.1.1.10~10.1.1.20) 参考1: #!/bin/bash group=class grep -w $group /etc/group &>/dev/null [ $? -ne 0 ] && groupadd $group for i in 1 2 3 do useradd -G class u$i echo 123|passwd --stdin u$i &>/dev/null done 参考2: for ((i=10;i<=20;i++)) do ping -c 1 10.1.1.$i &>/dev/null [ $? -eq 0 ] && echo "the IP 10.1.1.$i is ok" >> /tmp/ip_ok.log || echo "the IP 10.1.1.$i is not ok" >> /tmp/ip_notok.log done

for 循环

标签:break   not   用户   bin   null   user   tin   done   偶数   

原文地址:https://www.cnblogs.com/skyzy/p/9194210.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!