linux基础之条件测试

关键词: 数值测试  字符串测试  文件测试

测试命令有三种方式:

   test EXPRESSION 
  [ EXPRESSION ]
  [[ EXPRESSION ]]
    注意:EXPRESSION前后有空白字符

bash的测试类型

  数值测试  

       -gt: 是否大于
     -ge:是否大于等于
    -lt: 是否小于
    -le: 是否小于等于
    -eq: 是否等于
    -ne: 是否不等于            

  字符串测试    

==: 是否等于
>: 是否大于
<: 是否小于
!= : 是否不等于
~=: 左侧字符串是否能够被右侧的PATTERN所匹配到
        Note:此种表达式一般用于[[]]中
-z "STRING" : 测试字符串是否为空,空则为真,不空为假
-n "STRING": 测试字符串是不不空,不空则为真,空则为假
        Note: 字符串比较时用到的操作数都应该使用引号

  文件测试

存在性测试
    -a FILE
    -e FILE: 文件存在性测试,存在为真,否则为假
存在性及类别测试    
    -b FILE: 是否存在且为块设备文件
    -c FILE: 是否存在且为字符设备文件
    -d FILE: 是否存在且为目录文件
    -f FILE : 是否存在且为普通文件
    -h FILE 或 -L FILE: 是否存在且为符号链接文件
    -p FILE: 是否存在且为管道文件
    -S FILE: 是否存在且为套接字文件
文件权限测试
    -r FILE : 是否存在且可读
    -w FILE : 是否存在且可写
    -x FILE : 是否存在且可执行
文件特殊权限测试:
    -g FILE: 是否存在且拥有sgid权限
    -u FILE: 是否存在且拥有suid权限
    -k FILE:是否存在且拥有sticky权限
文件大小测试
    -s FILE: 是否存在且非空
文件是否打开
    -t fd: fd表示文件描述符是否已经打开且与某终端相关
    -N FILE:文件自动上次被读取之后是否被修改过
    -O FILE: 当前用户是否为文件的属主
    -G FIEL: 当前用户是否为文件属组
双目测试
    FILE1    -ef    FILE2 : FILE1 与 FILE2 是否指向同一个设备上的inode
    FILE1    -nt    FILE2 : FILE1 是否 新于 FILE2
    FILE1    -ot    FILE2 : FILE1 是否 旧于 FILE2
原文地址:https://www.cnblogs.com/ckh2014/p/7191556.html