Shell脚本之条件测试

本文是自己学习的总结,仅以作分享。若有不对的地方欢迎指正。

条件测试
    在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果不同进行不同的操作,有时也会与if等条件语句相结合,让我们可以方便的完成判断。

语法说明
    格式一:test 测试表达式

        Shell脚本之条件测试_第1张图片


    格式二: [ 测试表达式 ]

        Shell脚本之条件测试_第2张图片


    格式三: [[ 测试表达式 ]]

        


    格式一和格式二是等价的,格式三是test的扩展命令。在[[ ]]、[ ]中可以使用通配符进行匹配,&&、||、>、<、等也可用于[[ ]]中,但不能用于[ ]中。

 

文件测试操作符
    -f 文件:若文件存在且为普通文件则为真(f=file)
    -d 文件:若文件存在且为目录文件则为真(d=dirctory)
    -s 文件:若文件存在且不为空(文件大小为零)则为真(s=size)
    -e 文件:若文件存在则为真(e=exist)
    -r 文件:若文件存在且可读则为真(r=read)
    -w 文件:若文件存在且可写则为真(w=write)
    -x 文件:若文件存在且可执行则为真(x=executable)
    -L 文件:若文件存在且为链接文件则为真
    f1 –nt f2:若文件f1比文件f2新则为真(nt=newer than)
    f1 –ot f2:若文件f1比文件f2旧则为真(ot=older than)

字符串测试操作符
    比较两个字符串是否相同、字符串长度是否为零,字符串是否为NULL(bash区分零长度字符串和空字符串)等
    -z “字符串”:若字符串长度为零则为真(z=zero)
    -n “字符串”:若字符串长度不为零则为真(z=no zero)
    “串1”=”串2”:若串1等于串2则为真,可用“==”代替“=”
    “串1”!=”串2”:若串1不等于串2则为真
    比较字符串长度是否相等:[ “${#字符串1}” = “${#字符串2}” ] && echo 1 || echo 0

整数二元比较操作符

    Shell脚本之条件测试_第3张图片
 

    Shell脚本之条件测试_第4张图片

 

逻辑操作符

    Shell脚本之条件测试_第5张图片

 

    Shell脚本之条件测试_第6张图片

你可能感兴趣的:(通用技术,Shell)