• shell循环语句


    所有的笔记只记录一些例子,根据例子解释一些出现的语法,不介绍具体的语法

    2015-07-01 21:58:33 星期三

    for循环

    • 用例一
      用for循环在家目录下创建aaa1-aaa10,然后在aaa1-aaa10创建bbb1-bbb10的目录
      1. #!/bin/bash
      2. for k in $(seq 1 10)
      3. do
      4.    mkdir /home/hxy/aaa${k}
      5. cd /home/hxy/aaa${k}   
      6.    for i in $(seq 1 10)
      7. do
      8. mkdir bbb${i}
      9. done
      10. done

      seq 用于产生从某个数到另外一个数之间的所有整数

    用例二

    1. #!/bin/bash
    2. DIR="/var"
    3. cd $DIR
    4. for k in $(ls $DIR)
    5. do
    6.    [ -d $k ]&& du -sh $k
    7. done

    -d 判断是否为目录

    或者

    1. vi getdu.sh
    2. #!/bin/bash
    3. DIR=$1
    4. if [ -d $DIR ];then
    5. cd $DIR
    6.  for k in $(ls $DIR)
    7.  do
    8.     [ -d $k ]&& du -sh $k
    9.  done
    10. else 
    11.   echo $1" is not a directory!!"
    12. fi

    使用,加入一个判断

    1. [root@oracle ~]# sh getdu.sh a
    2. a is not a directory!!
    1. [root@oracle ~]# sh getdu.sh /var
    2. 4.0K account
    3. 15M cache
    4. 4.0K crash
    5. 4.0K cvs
    6. 12K db
    7. 8.0K empty
    8. 8.0K ftp
    9. 4.0K games
    10. 4.0K gdm
    11. 64M lib
    12. 4.0K local
    13. 20K lock
    14. 7.3M log
    15. 0 mail
    16. 4.0K nis
    17. 4.0K opt
    18. 4.0K preserve
    19. 284K run
    20. 1.8M spool
    21. 8.0K tmp
    22. 12K yp

    while循环

    用例一

    1. [root@oracle ~]# cat a.txt
    2. aaa
    3. bbb
    4. ccc
    5. ddd
    6. [root@oracle ~]# cat while.sh
    7. #!/bin/bash
    8. while read line
    9. do
    10. echo ${line}
    11. done < a.txt

    输出

    1. [root@oracle ~]# sh while.sh
    2. aaa
    3. bbb
    4. ccc
    5. ddd

    用例二

    1. [root@oracle ~]# cat sum.sh
    2. declare -i i=1
    3. declare -i sum=0
    4. while ((i<=10))
    5. do
    6. let sum=sum+i
    7. let ++i
    8. done
    9. echo $sum
    10. [root@oracle ~]# sh sum.sh
    11. 55

    declare -i 声明i和sum为整数类型

    until循环

    1. [root@oracle ~]# cat sum.sh
    2. declare -i i=1
    3. declare -i sum=0
    4. until ((i>10))
    5. do
    6. let sum=sum+i
    7. let ++i
    8. done
    9. echo $sum
    10. [root@oracle ~]# sh sum.sh
    11. 55

    until条件为假才执行





  • 相关阅读:
    实现input输入时智能搜索
    动态磁盘转基本磁盘(简单卷变为主分区)
    删掉一个文件夹相对于另一个文件夹多出的文件
    win10搜索不到蓝牙设备
    anaconda使用
    pycharm tab换为4个空格
    wamp端口冲突
    c++ 字符串
    pta 编程题20 旅游规划
    c++指针二维数组
  • 原文地址:https://www.cnblogs.com/haoxiaoyu/p/c01182f802a106d5155aa485800f82c2.html
Copyright © 2020-2023  润新知