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 郵箱地址: [email protected],有問必答,有答必應,人人爲我,我爲人人******* |