zoukankan      html  css  js  c++  java
  • 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条件为假才执行





  • 相关阅读:
    冒泡排序
    位运算查缺补漏
    单元测试Junit5+Mockito3+Assertj
    插入排序
    Java异常处理
    Redis数据结构-list
    Redis数据结构-hash
    Redis全局命令
    对各向异性高光的理解
    OpenGL投影矩阵(Projection Matrix)构造方法
  • 原文地址:https://www.cnblogs.com/haoxiaoyu/p/c01182f802a106d5155aa485800f82c2.html
Copyright © 2011-2022 走看看