用例1
    用for循环在家目录下创建aaa1-aaa10,然后在aaa1-aaa10创建bbb1-bbb10的目录

    #!/bin/bash
    for k in $( seq 1 10 )
    do
    mkdir /home/kuangl/aaa${k}
    cd /home/kuangl/aaa${k}
    for l in $( seq 1 10 )
    do
    mkdir bbb${l}
    cd /home/kuangl/aaa${k}
    done
    cd ..
    done
    说明:
    行2,seq 用于产生从某个数到另外一个数之间的所有整数。
    行4,在家目录下创建文件夹。
    行6,在使用一个for循环创建文件夹


    用例2
    列出var目录下各子目录占用磁盘空间的大小。

    #!/bin/bash
    DIR=”/var”
    cd $DIR
    for k in $(ls $DIR)
    do
    [ -d $k ] && du -sh $k
    done
    说明:
    行4,对/var目录中每一个文件,进行for循环处理。
    行6,如果/var下的文件是目录,则使用du -sh计算该目录占用磁盘空间的大小。

    用例1
    while循环,经典的用法是搭配转向输入,读取文件的内容,做法如下:
    #!/bin/bash
    while read kuangl
    do
    echo ${kuangl}
    done < /home/kuangl/scripts/testfile
    说明:
    行2,使用read有标准输入读取数据,放入变量kuangl中,如果读到的数据非空,就进入循环。
    行4,把改行数据显示出来
    行5,将/home/kuangl/scripts/testfile的内容转向输入将给read读取。

    用例2:

    #!/bin/bash
    declare -i i=1
    declare -i sum=0
    while ((i<=10))
    do
    let sum+=i
    let ++i
    done
    echo $sum
    说明:
    行2-3,声明i和sum为整数型
    行4,如果条件测试:只要i值小于或者等于10,就执行循环。
    行6,sum+=i和sum=sum+i是一样的,sum累加上i。
    行7,i的值递增1,此行是改变条件测试的命令,一旦i大于10,可终止循环。
    行8,遇到done,回到行6去执行条件测试
    行9,显示sum的值为55

    用例1:

    #!/bin/bash
    declare -i i=10
    declare -i sum=0
    until ((i>10))
    do
    let sum+=i
    let ++i
    done
    echo $sum
    说明:
    行2-3,声明i和sum为整数型
    行4,如果条件测试:只要i值未超过10,就进入循环。
    行6,sum+=i和sum=sum+i是一样的,sum累加上i。
    行7,i的值递增1,此行是改变条件测试的命令,一旦i大于10,可终止循环。
    行8,遇到done,回到行6去执行条件测试
    行9,显示sum的值为10


    1 #! /bin/bash
    2
    3 declare -i i=1
    4
    5 date +%r
    6 while(true)
    7 do
    8 let ++i
    9 if [ “$i” = “10” ];then
    10 echo $i
    11 break
    12 fi
    13 sleep 3
    14 date +%r
    15 echo $i
    16 php /var/www/test/ApplogCommand.php >>/var/www/test/test.log
    17 done
    18 echo $i

    02、linux下对符合条件的文件大小做汇总统计的简单命令

    (1)统计当前目录下的 txt 文件
    du -c -h
    txt

    (2)统计当前目录下的 txt 文件, 并求出总大小
    du
    txt |awk ‘BEGIN{count=0;size=0;} \
    {count = count + 1; size = size + $1/1024;} \
    END{print “Total count “ count; \
    print “Total size “ size/1024 “ GB” ; \
    print “Avg size “ size / count “MB”}’

    (3)统计当前目录下及其子目录中的 +1000000k 文件
    find . -size +1000000k -exec ls -l {} \; |awk ‘BEGIN{count=0;size=0;} \
    {count = count + 1; size = size + $5/1024/1024;} \
    END{print “Total count “ count; \
    print “Total Size “ size/1024 “ GB” ; \
    print “Avg Size “ size / count “MB”; \
    print “-“}’

    (4)统计当前目录下及其子目录中的 .fastq
    find . -name ‘
    .fastq’ -exec ls -l {} \; |awk ‘BEGIN{count=0;size=0;} \
    {count = count + 1; size = size + $5/1024/1024;} \
    END{print “Total count “ count; \
    print “Total Size “ size/1024 “ GB” ; \
    print “Avg Size “ size / count “MB”; \
    print “-“}’

    (5)统计当前目录下及其子目录中的之前2天的文件
    find . -mtime -2 -exec ls -l {} \; |awk ‘BEGIN{count=0;size=0;} \
    {count = count + 1; size = size + $5/1024/1024;} \
    END{print “Total count “ count; \
    print “Total Size “ size/1024 “ GB” ; \
    print “Avg Size “ size / count “MB”; \
    print “-“}’

    03、统计图片

    //webp图统计
    find ./ -name ‘.webp’ -type f -exec ls -l {} \;|awk ‘BEGIN{count=0;size=0;} {count = count + 1; size = size + $5/1024/1024;} END{print “Total count “ count; print “Total Size “ size/1024 “ GB” ; print “Avg Size “ size / count “MB”; print “-“}’

    //不是webp图片统计
    find ./ ! -name ‘
    .webp’ -type f -exec ls -l {} \;|awk ‘BEGIN{count=0;size=0;} {count = count + 1; size = size + $5/1024/1024;} END{print “Total count “ count; print “Total Size “ size/1024 “ GB” ; print “Avg Size “ size / count “MB”; print “-“}’

    //全部统计
    find ./ -type f -exec ls -l {} \;|awk ‘BEGIN{count=0;size=0;} {count = count + 1; size = size + $5/1024/1024;} END{print “Total count “ count; print “Total Size “ size/1024 “ GB” ; print “Avg Size “ size / count “MB”; print “-“}’

    //文件总数
    find ./ -type f -exec ls -l {} \;|wc -l