@H_502_3@shell编程for循环总结
在shell编程中,循环的执行是将某代码段重复运行多次,常用循环有for、while和until循环,其中for循环经常用于有限次循环,for循环的语法结构有如下两种:
第一种:shell传统for循环语法结构
for 变量名 in 变量取值列表;do 指令… done 其中取值列表通常又有5种方式: (1)直接给出列表,列表中间用空格隔开 [root@centos7 ~]#for i in 1 3 5;do echo $i;done 1 3 5 (2)整数列表 (a) {start..end} [root@centos7 ~]#for i in {1..5..2};do echo $i;done 1 3 5 (b)$(seq start step end) [root@centos7 ~]#for i in $(seq 1 2 5);do echo $i;done 1 3 5 (3)返回命令列表 [root@centos7 ~]#mkdir test [root@centos7 ~]#cd test/ [root@centos7 ~/test]#touch 1.sh [root@centos7 ~/test]#touch 3.sh [root@centos7 ~/test]#touch 5.sh [root@centos7 ~/test]#for i in $(ls);do echo $i;done 1.sh 3.sh 5.sh (4)使用glob,如:*.sh [root@centos7 ~/test]#for i in *\.sh; do echo $i;done #选择当前目录下满足*.sh 1.sh 3.sh 5.sh (5)使用变量引用如$@,$* [root@centos7 ~/test]#vim 1 [root@centos7 ~/test]#chmod +x 1 1 #!/bin/bash 2 for i in $@;do 3 rm -rf $i 4 done [root@centos7 ~/test]#./1 1.sh 3.sh 5.sh [root@centos7 ~/test]#ls 1 #验证1.sh 3.sh 5.sh已经删除 |
第二种结构体:C语言型结构体
for ((exp1; exp2; exp3)) do 指令 done [root@centos7 ~/test]#for ((i=1; i<=5; i=i+2));do echo $i;done 1 #注意:a=a++ 和 a=a+2的区别,a=a+2是表达式,=号的优先级较低,因此先+后赋值 3 5 |
基础案例分析:
1.打印99乘方口诀,
[root@centos7 ~/scripts]#vim sufakoujue.sh |
2.判断当前目录下所有文件的类型
[root@centos7~/test]#vim panduan.sh |
3.计算1+2+3+4+...+n之和,其中n由用户自己输入
[root@centos7~/test]#vim sum.sh |
4.计算100之内能被3整除的整数之和
[root@centos7~/test]#vim 3sum.sh |
5.判断局域网192.168.1.0的网段主机存活状态
[root@centos7 ~/test]#vim hostping.sh |
6.打印等腰三角形
[root@centos7 ~/test]vim dengyao.sh read -p "please input a inter: " a for i in $(seq$a);do let j=$a-$i+1 let k=2*$i-1 #++++++++打印每行等腰三角的空白字符+++++ for l in $(seq $j);do echo -n " " done #++++++++打印等腰三角形的构成图形+++++++ for n in $(seq $k);do echo -n "" done #++++++++每一行结束后进行换行+++++++++++ echo done [root@centos7 ~/test]./dengyao.sh |
********具体详情请咨询微信:QQ767743577 邮箱地址: xuewei_bo@126.com,有问必答,有答必应,人人为我,我为人人******* |