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. java学习笔记----数据类型,变量,常量

    一.数据类型 1.基本类型(8种,又称内置数据类型).6种数字类型(byte,short,int,long,float,double),一种字符型(char),一种布尔类型(boolean). byt ...

  2. CentOS最小化安装后启用无线连接网络

    想要链接无线就需要无线工具包. yum install -y  wireless-tools安装完成之后就有 iwconfig,iwlist,iw等命令行工具了. 首先启动无线网卡,记得开启无线开关, ...

  3. Dapper源码学习和源码修改(下篇)

    目录: Dapper源码学习和源码修改(上篇主要讲解入参解析) Dapper源码学习和源码修改(下篇主要讲解出参解析) 继上篇讲了下自己学习Dapper的心得之后,下篇也随之而来,上篇主要讲的入参解析 ...

  4. bootstrap-typeahead自动补充

    官方文档:https://github.com/bassjobsen/Bootstrap-3-Typeahead 这个是基于bootstrap的typeahead与基于jquery的jquery-Ty ...

  5. Linux 搭建svn版本库

    一.安装svn服务器端yum install subversion      从镜像下载安装svn服务器端 如果后面执行“svnadmin create /usr/local/svn/sunny”提示 ...

  6. response.sendRedirect 报 java.lang.IllegalStateException 异常的解决思路

    今天在进行代码开发的时候,出现了 java.lang.IllegalStateException异常,response.sendRedirect("./DEFAULT.html") ...

  7. 给自己的 MAC 添加一个桌面日历

    使用 Ubuntu 做自己的办公环境用了将近三年,最近换了新款的 MBP,系统都用的很舒服. 不过 Ubuntu 是在我的 TP W540上部署的,而 W540 + 电源适配太重了(我的电池是9芯的) ...

  8. 【转】如何实现Flex页面跳转

    其实对于这个题目是不恰当的,因为flex中是没有页面这个概念的,页面在flex里面其实就是一个个的Canvas,vbox,hbox等等之类的东西,看到的不同页面的切换,就是这些元素一层层的堆积,或者替 ...

  9. 万能数据库连接类-Oracle、DB2 、Access 、Sql Server

    package cc.apps.report;   import java.sql.Connection; import java.sql.DriverManager; import java.sql ...

  10. html+css底部自动固定底部

    前端在切图过程中,肯定遇见过这种情况. 页面结构由三个部分组成,头部.内容.底部. 当一个页面的内容没撑满屏幕时,底部是跟着内容而并列存在的. 这个时候如果是大屏的话,底部下面会有多余的空白区域,而网 ...