• shell scripts的简单使用二


    循环
    1、for....do....done,

    2、while...do...done,

    3、until...do...done,
      在程序段当中,最常使用到的就是循环了!循环是很重要的一项工具,尤其是具有判断形式的循环,很常被使用来判断一些事项的可行性与否!
    最简单的判断式可以是底下几种:
    1、for (( 条件一; 条件二; 条件三 ))
    2、for variable in variable1 variable2 .....
    3、while [ condition1 ] && { || } [ condition2 ] ...
    4、until [ condition1 ] && { || } [ condition2 ] ...
    for 是已经知道有多少个 run 了,即是已经知道要跑几次了,至于 until 与 while 则分别是:
    until:直到条件相同的时候才离开程序
    while:当条件相同的时候,就继续做!

    例1,计算1+2+3+...+100

    #!/bin/bash
    #该脚本使用for条件判断
    #建立日期2017-02-13
    #创建者:csk
    declare -i sum
    for((i=1;i<=100;i++))
    do
        sum+=i;
    done
    echo "$sum"
    输出结果:
    5050
    #!/bin/bash
    #该脚本使用while条件判断
    #建立日期2017-02-13
    #创建者:csk
    declare -i sum
    declare -i i
    while [ "$i" != "101" ]
    do
            sum+=i;
            i=i+1;   #此处不可写成i++
    done
    echo "$sum"

    输出结果:
    5050

    #!/bin/bash
    #该脚本使用until条件判断
    #建立日期2017-02-13
    #创建者:csk
    declare -i sum
    declare -i i
    until [ "$i" = "101" ]
    do
            sum+=i;
            i=i+1;   #此处不可写成i++
    done
    echo "$sum"

    输出结果:
    5050

    例2 for..in...

    #!/bin/bash
    #该脚本使用for..in...
    #建立日期2017-02-13
    #创建者:csk
    LIST="Tomy Jony Mary Geoge"
    for i in $LIST
    do
      echo $i
    done

    输出结果:
    Tomy
    Jony
    Mary
    Geoge
      这一种格式是以空格键当作 i 这个变量的选择项目!也就是说,上面的 $LIST这个变量当中,以空格键来分隔的时候,共可以分离出来Tomy、Jony、Mary、Geoge这四个元素。


    逻辑判断式
    例3
     使用条件判断来断定到底有没有档案(用 -e)或者是该名称是属于目录或者是档案( -d -f ),接下来我们来判断一个流程好了:
    1、先查看一下当前目录下“csk”这个名称是否存在;
    2、若不存在,则建立一个档案,使用 touch 来建立,建立完成后离开;
    3、如果存在的话,判断该名称是否为档案,若为档案则将之删除后建立一个档案,档名为 csk,之后离开;
    4、如果存在的话,而且该名称为目录,则移除此目录

    #!/bin/bash
    #该脚本用于判断文件是否存在
    #建立日期2017-02-13
    #创建者:csk
    if [ ! -e csk ]; then
        touch logical
        echo "Just make a file csk"
        exit 1
    elif [ -e csk ] && [ -f csk ]; then
        rm csk
        mkdir csk
        echo "remove file ==> csk"
        echo "and make directory csk"
        exit 1
    elif [ -e csk ] && [ -d csk ]; then
        rm -rf csk
    echo "remove directory ==> csk"
        exit 1
    else
        echo "Does here have anything?"
    fi
    海阔凭鱼跃,天高任鸟飞。
  • 相关阅读:
    [bzoj4868][Shoi2017]期末考试
    [4.30四校联考]
    [Noi2013]快餐店
    [Noi2013]树的计数
    [Noi2013]向量内积
    [Noi2013]矩阵游戏
    java端拦截器判断客户的的请求是否是ajax请求
    spring 事务回滚
    Page directive: illegal to have multiple occurrences of contentType with different values
    jsp service bean
  • 原文地址:https://www.cnblogs.com/chenshikun/p/6394860.html
Copyright © 2020-2023  润新知