bash编程运算与判断



-------------------------------------------------------------------------------------------

运算


逻辑运算
    布尔运算:真,假
    与,或,非,异或
    && 与
    || 或
    !
    

比较运算符
    >
    <
    ==
    !=
    >=
    <=
    
命令执行成功与否的条件测试
    test

整型比较
-eq 等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
-ne 不等于

字符串测试,在对字符串或变量做比较时,最好把变量或字符串都用双引号引起来。
    双目操作符
    >
    <
    >=
    <=
    ==
    !=
    file1 -nt file2 文件file1的mtime新于file2则为真,否则为假
    file1 -ot file2 文件file1的mtime老于file2则为真,否则为假
    单目操作符
    -n ‘string’ 测试字符串是否为空,不空为真,空为假
        -n "wukui"
    -z ‘string’ 测试字符串是否为空,空为真,不空为假。
    -a filename 存在则为真,否在为假
    -e filename    与-a一样
    -f filename 文件存在并且是一个普通文件,则为真
    -d filename 文件存在并且是一个目录,则为真
    -h filename 文件存在并且为一个链接文件则为真
    -L filename    与-h一样
    -b filename 文件存在,并且是一个块设备
    -c filename 文件存在,并且是字符设备
    -S 文件存在并且是一个socket文件
    -p 文件存在,并且是管道文件
    -s filename 文件存在并且非空
    -r 文件有读取的权限
    -w    文件有写的权限
    -x    文件有执行的权限
    -N  文件被修改过,并且没人看过。文件的mtime比atime新


    
    组合条件,在多个条件间实现逻辑运算
        与 [ 条件1 -a 条件2 ]
            条件1 && 条件2 这时就不需要中括号了
        或 [ 条件1 -o 条件2 ]
            条件1 || 条件2
        非 [ -not 条件 ]
            ! 条件
------------------------------------------------------------------------------------------ 判断

if 三种使用格式
    
    单分支的
    
        if 测试条件;thenn
            选择分支
        fi
            
        if ! 测试条件;thenn 叹号表示取反
            选择分支
        fi
    条件状态返回值为真则执行分支。
    
    双分支的if语句
        
        if 测试条件;then
            选择分支1
        else
            选择分支2
        fi
    
    两个分支只支执行一个
    
    多分支的
    
        if 测试条件;thenn
            选择分支
        elif 条件2 ;then
            分支2
        elif 条件3 ;then
            分支3
        else
            分支n
        fi
    
    
    case语句,有多个测试条件时,case比if写法更简便。
    PATTERN:
        a|b:a或者b
        *:匹配任意长度的字符
        ?:匹配任意单个字符
        []:用来取范围
        
    
    case i in
    1)
        echo $i
        ;;
    2)
        echo $i
        ;;
    *)
        echo "haha"
    case

你可能感兴趣的:(运算,bash,判断)