3种测试命令:

  test EXPRESSION

  [ EXPRESSION ]

  [[ EXPRESSION ]]   

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

bash的测试类型

  数值测试:

    -eq:是否相等

    -ne:是否不等

    -ge:是否大于等于

    -le:是否小于等于

    -gt:是否大于

    -lt:是否小于

  字符串测试:

    =或==:是否等于

    >:是否大于

    <:是否小于

    !=:是否不等于

    =~:左侧字符串是否能够被右侧PATTERN所匹配  [[  ]]中使用

    -z "STRING":测试字符串是否为空,空则为真

    -n "STRING":测试字符串是否非空,不空则为真

    注意:用于字符串比较时用到的操作数都应该使用引号括起来

   文件测试:

     存在性测试:

        -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 FILE:当前有效用户是否为文件属组

      双目测试:

        FILE1 -ef FILE2:FILE1与FILE2是否指向同一个设备上的相同inode

        FILE1 -nt FILE2:FILE1是否新于FILE2

        FILE1 -ot FILE2:FILE1是否旧与FILE2

组合条件测试:

    逻辑运算:

        [  ]中使用:

         EXPRESSION1 -a EXPRESSION2:2个条件同时为真,则结果为真

         EXPRESSION1 -o EXPRESSION2:2个条件中其中一个条件为真,则结果为真

         ! EXPRESSION:条件为假时,则结果为真

        [[  ]]或[  ] ** [  ]中使用:  注:**为&&或||

         &&: 左右两边条件或命令同时为真,则结果为真

         ||:左右两边条件或命令其中一个为真时,则结果为真

         !:条件或命令为假时,则结果为真

      注:[  ]中使用小括号需要转义即\(\),[[  ]]则无需转义

     

          

          

      

      

bash Shell条件测试的更多相关文章

  1. shell条件测试test

    shell条件测试可以通过以下两种方式: test   参数    测试内容 [ 参数  测试内容 ] 一.测试文件类型: test  -e   文件名          (测试文件是否存在) [ - ...

  2. bash之条件测试if/else

    bash之条件测试:     if/then结构         条件测试(CONDITION):         test EXPRESSION:测试条件表达式正确否         [ EXPRE ...

  3. shell条件测试语句实例-测试apache是否开启

    终于理解了shell条件测试语句"!="和"-n"的用法区别,于是有了如下的shell脚本,做为练习. 第一种方法:测试apache是否开启?字符串测试 #!/ ...

  4. 【第四章】Shell 条件测试表达式

    shell中条件测试的三种格式: 格式1: test 条件表达式格式2: [ 条件表达式 ]格式3: [[ 条件表达式 ]] 使用test: [root@host- ~]# test -f file ...

  5. 四 Shell条件测试

    条件测试操作 在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作,有时也会通过与if等条件语句相结合,让我们可以方便的完成判断. 语法格式 test 选项 文件名或目录名 ...

  6. shell条件测试结构

    条件测试结构 if/then结构用来判断命令列表的退出状态码是否为0(因为在UNIX惯例, 0表示"成功"), 如果成功的话, 那么就执行接下来的一个或多个命令. 有一个专有命令[ ...

  7. shell条件测试和流程控制

    一.条件测试操作 1.test 用途:测试特定的表达式是否成立,当条件成立时,命令执行后的返回值为0,否则为其他数值 格式:test 表达式 2.常见的测试类型 ①测试文件状态 格式:[ 操作符 文件 ...

  8. shell条件测试

    文件状态测试-b filename : 当filename 存在并且是块文件时返回真(返回0)-c filename : 当filename 存在并且是字符文件时返回真-d pathname : 当p ...

  9. bash编程-条件测试

    Shell脚本中经常需要判断某情况或者数据是否满足,需要由测试机制来实现. 测试方式 echo $?查看命令执行状态返回值 bash脚本中可以自定义返回值exit n(n为自己指定的状态码),shel ...

随机推荐

  1. CodeBlocks常用重要快捷键大全!!

    CodeBlocks常用操作快捷键 编辑部分: Ctrl + A:全选 Ctrl + C:复制 Ctrl + X: 剪切 Ctrl + V:粘贴 Ctrl + Z:撤销(后退一步) Ctrl + S: ...

  2. 运用google-protobuf的IM消息应用开发(前端篇)

    前言: 公司原本使用了第三方提供的IM消息系统,随着业务发展需要,三方的服务有限,并且出现问题也很难处理和排查,所以这次新版本迭代,我们的server同事呕心沥血做了一个新的IM消息系统,我们也因此配 ...

  3. javaWEB与JSP指令

    JSP三大指令  一个jsp页面中,可以有0~N个指令的定义!1. page --> 最复杂:<%@page language="java" info="xx ...

  4. PMP和PRINCE2应该选择哪个?光环国际项目管理认证

    对于项目管理课程的选择,我们不能盲目地做选择,一定要从自身实际出发.从来都没有更好的课程,只有更合适自己的课程. 那么,如何选择合适自己的项目管理课程呢? 让我们从PMP与PRINCE2之间的差异开始 ...

  5. [编织消息框架][JAVA核心技术]动态代理应用4

    基础部份: 接下来讲编译JAVA时,生成自定义class 我们用 javax.annotation.processing.AbstractProcessor 来处理 public abstract c ...

  6. 通过Elasticsearch使用的你的数据

    Elasticsearch 系列导航 elasticsearch 与 elasticsearch-head 的安装 ElasticSearch Index API && Mapping ...

  7. 1134: 零起点学算法41——多组测试数据(a+b)III

    1134: 零起点学算法41--多组测试数据(a+b)III Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitt ...

  8. 关于IE兼容问题

    针对IE6/7/8 可以分为两种模式:怪异模式(Quirks mode)和标准模式(Standards mode),在IE6以下版本下显示怪异模式,border和padding都包含在width中使用 ...

  9. 静态链表实现(A-B)+(B-A)【代码】

    -----------------------------------------------第一次发代码,写在前面------------------------------------------ ...

  10. windows升级到1607后操作很卡顿的解决办法

    CPU I5,固态128G,win7主系统,WIN10和WIN7都安装在固态硬盘上. 未升级之前,操作很流畅,以至于把家里的老古董电脑也换固态,系统换WIN10了.自从升级了1607后这个问题就出现了 ...