• linux基础学习-19.5-Shell脚本-if判断


    1、if单分支条件语句

    if [ 条件 ]
        then
            指令
    fi
    或
    if [ 条件 ];then
        指令
    fi
    

    提示:分号相当于命令换行,上面两种语句等同。

    特殊写法if [ -f "$file1" ];then echo 1;fi

    相当于 [ -f "$file1" ] && echo 1

    例子:

    1)输入2个数字,比较大小

    #!/bin/bash
    
    #no1
    if [ $# -ne 2 ]
            then
                    echo "USAGE $0 num1 num2"
                    exit 1
    fi
    a=$1
    b=$2
    if [ $a -lt $b ];then
            echo "yes,$a less than $b"
            exit
    fi
    if [ $a -eq $b ];then
            echo "yes,$a equal $b"
            exit
    fi
    if [ $a -gt $b ];then
            echo "yes,$a greater than $b"
            exit
    fi
    

    2)如果/server2/scripts下面有if3.sh就输出if3.sh到屏幕,如果没有自动创建

    [root@chensiqi1 scripts]# cat chensiqi.sh
    #!/bin/bash
    
    path=/server2/scripts
    file=if3.sh
    if [ ! -d $path ]
        then
            mkdir -p $path
            echo "directory is not exsist!"
    fi
    if [ ! -f $path/$file ]
        then
            touch $path/$file
            echo "file is not exsist!"
        else
            echo "file is exsist!"
    fi
    

    2、if双分支条件语句

    if [ 条件 ]
        then
            指令
        else
            指令
    fi
    

    特殊写法:if [ -f "$file1" ];then echo 1;else echo 0;fi

    相当于[ -f "file1" ] && echo 1 ||echo 0

    例子:

    1)如果/server2/scripts下面有if3.sh就输出if3.sh到屏幕,如果没有就自动创建

    [root@oldboy scripts]# cat chensiqi.sh 
    #!/bin/bash
    
    file=/server2/scripts/if3.sh
    path=`dirname $file`
    
    if [ -f $file ];then
        cat $file
        exit 0
    else
        if [ ! -d $path ];then
            mkdir -p $path
            echo "$path is not exist,already created it."
            echo "1234" >> $file
        fi
        if [! -f $file ];then
            echo "1234" >> $file
            echo "$file is not exist,already created it."
        fi
    fi
    

    3、多分支if语句

    if [ 条件1 ];then
        指令1
    elif [ 条件2 ];then
        指令2
    elif [ 条件3 ];then
        指令3
    elif [ 条件4 ];then
        指令4
    else
        指令n
    fi
    
    例子:

    1)判断两个整数大小

    [root@oldboy scripts]# cat chensiqi.sh 
    #!/bin/bash
    
    if [ $# -ne 2 ];then
        echo "USAGE $0 num1 num2"
        exit 1
    else
        num1=`echo $1 | sed 's#[0-9]##g'`
        num2=`echo $2 | sed 's#[0-9]##g'`
    fi
    
    
    if [ ${#num1} -eq 0 -a ${#num2} -eq 0 ];then
        if [ $1 -lt $2 ];then
            echo "$1 less than $2!"
            exit
        elif [ $1 -eq $2 ];then
            echo "$1 equal $2!"
            exit
        else    
            echo "$1 great than $2!"
            exit
        fi
    else
        echo "num1 num2 must be digit!"
    fi
    

    练习题:

    1、if判断的基本语法

  • 相关阅读:
    LR回放webservice脚本报错------------mmdrv.exe应用程序错误(未解决)
    转载:shell中#*,##*,#*,##*,% *,%% *的含义及用法
    转载:Linux命令经典面试题:统计文件中出现次数最多的前10个单词
    Python---求100以内的质数
    用shell编写小九九乘法表程序
    python中遇到的问题:IndentationError: unexpected indent
    关于redis的持久化策略
    关于equals和hashcode问题
    Spring源码窥探之:Spring AOP初步使用
    Spring源码窥探之:@Value
  • 原文地址:https://www.cnblogs.com/Klanti/p/9143787.html
Copyright © 2020-2023  润新知