美文网首页
条件测试

条件测试

作者: Simon_Ye | 来源:发表于2020-03-04 12:01 被阅读0次

    条件测试

    判断某需求是否满足,需要由测试机制来实现

    专用的测试表达式需要由测试命令辅助完成测试过程

    评估布尔声明,以便用在条件性执行中

    • 若真,则返回0
    • 若假,则返回1

    测试命令:

    ~]# test EXPRESSION
    ~]# [ EXPRESSION ]
    ~]# [[ EXPRESSION ]]

    注意:EXPRESSION前后必须有空白字符

    表达式

    • 数值测试:数值比较
       -eq:是否等于;
       -ne:是否不等于;
       -gt:是否大于;
       -ge:是否大于等于;
       -lt:是否小于;
       -le:是否小于等于;
    • 字符串测试:
       ==:是否等于;
       >:是否大于;
       <:是否小于;
       !=:是否不等于;
       =~:左侧字符串是否能够被右侧的PATTERN所匹配;
       -z "STRING":判断指定的字符串是否为空;空则为真,不空则为假;
       -n "STRING":判断指定的字符串是否不空;不空则为真,空则为假;

    注意:

    1. 字符串要加引号;
    2. 要使用[[ ]];
    • 文件测试:
      1. 文件的存在性测试:存在则为真,否则为假;
         -e FILE
         -a FILE
      2. 类型测试:
         -b FILE:是否存在并且为块设备文件;
         -c FILE:是否存在并且为字符设备文件;
         -d FILE:是否存在并且为目录文件;
         -f FILE:是否存在并且为普通文件;
         -h|-L FILE:是否存在并且为符号链接文件;
         -p FILE:是否存在并且为命令管道文件;
         -S FILE:是否存在并且为套接字文件;
      3. 权限测试:
         -r FILE:是否存在并且对当前用户可读;
         -w FILE:是否存在并且对当前用户可写;
         -x FILE:是否存在并且对当前用户可执行;
      4. 特殊权限测试:
         -u FILE:是否存在并且拥有suid权限;
         -g FILE:是否存在并且拥有sgid权限;
         -k FILE:是否存在并且拥有sticky权限;
      5. 文件大小测试:
         -s FILE:是否有内容;
      6. 时间戳测试:
         -N FILE:文件自从上一次读操作后是否被修改过;
      7. 从属关系测试:
         -O FILE:当前用户是否为文件的属主;
         -G FILE:当前用户是否属于文件的属组;
      8. 双目测试:
         FILE1 -ef FILE2:测试两个文件是否为指向同一个文件系统上相同的inode硬链接;
         FILE1 -nt FILE2:FILE1是否新于FILE2;
         FILE1 -ot FILE2:FILE1是否旧于FILE2;

    Bash 的组合测试条件

    1. 第一种方式:
      COMMAND1 && COMMAND2:并且
      COMMAND1 || COMMAND2:或者
      !COMMAND:非
      如:~]# [[ -r FILE ]] && [[ -w FILE ]]
    2. 第二种方式:
      EXPRESSION1 -a EXPRESSION2:并且
      EXPRESSION1 -o EXPRESSION2:或者
      !EXPRESSION:非
      必须使用测试命令进行
      示例:
      [root@node1 ~]# [ -z "$HOSTNAME" -o "$HOSTNAME"=="localhost.localdomain" ] && hostname www.magedu.com
      [root@node1 ~]# [ -f /bin/cat -a -x /bin/cat ] && cat /etc/fstab
      

    相关文章

      网友评论

          本文标题:条件测试

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