美文网首页
shell-条件测试

shell-条件测试

作者: p_gerer | 来源:发表于2019-04-08 18:51 被阅读0次

    一.语法

    test命令 expression

    [ expression ] 方括号是一个命令需要和条件保持一个空格的距离

    二.测试字符串

    常见字符串运算符

    a = 'abc'
    test $a  #字符串是否为空 结果为0
    test $a = 'sas'  #字符串是否相等 结果为1
    test $a != 'sas'  #字符串是否不相等 结果为0
    test -n $a #是否是非空串
    test -z $a #是否是空串
    

    三.整数测试

    用法和字符串运算符一样
    常见整数运算符
    -eq 相等
    -ne 不等
    -gt 大于
    -lt 小于
    -ge 大于等于
    -le 小于等于

    [ 12 -eq 13]
    

    四.文件测试

    语法
    test op file
    op file
    常见文件操作符
    -a和-e 文件是否存在
    -b 文件是否存在且是块文件 (目前还不太理解什么是块文件)
    -c 文件是否存在且是字符文件
    -d 文件是否存在且是目录
    -w 文件是否存在且可写
    -r 文件是否存在且可读
    -x 文件是否存在且可执行
    -s 文件是否是一个非空文件
    -f 文件是否存在且是常规文件
    -u 文件是否设施setuid位

    五.逻辑操作符

    ! 逻辑非
    -a 逻辑与
    -o 逻辑或

    #判断当前用户对.bash_profile有没有读写权限
    [-r .bash_profile -a -w .bash_proflie]
    

    ⚠️注意:
    1.shell 条件测试为真返回为0.主要是为了shell程序的退出状态保持一致
    2.测试运算符=,!=,-z,-n等左右两边需要保留一个空格否则会被认为是一个普通字符,test "aaa"="bb"真正执行的是test "aaa=bb"
    3.shell 字符串计算空格区分大小写
    4.字符串运算符和整数运算符不可混用,整数比较使用字符串运算符 会把整数作为字符串来比较,字符串比较使用整数运算符会报错

    相关文章

      网友评论

          本文标题:shell-条件测试

          本文链接:https://www.haomeiwen.com/subject/cggqiqtx.html