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. CSS中清除浮动的方法

    CSS浮动,最早是为了达到文字环绕的效果提出的,也可以用来做布局,但是布局会产生很多问题(高度塌陷,漂浮在普通流上),会使当前标签产生上浮的效果,会影响前后标签,同样的代码在不同的浏览器的兼容性也不一 ...

  2. 使用Docker容器来源码编译etcd

    背景 etcd是CoreOS公司开发的分布式键值对存储库.在Kubernetes中,我们需要使用etcd作为所有REST API对象的持久化存储. 不幸的是,在github的release中,Core ...

  3. 一个关于Linux升级Python后yum的小问题

    前几天在自己的阿里云服务器安装好Python3.5.2之后,顺便删除了原有的/usr/bin/python(因为我知道系统自带的是Python2,而且也会有/usr/bin/python2这个文件,所 ...

  4. Git 远程分支的pull与push

    Git 远程分支的pull与push 远程分支信息查看 git branch -r #查看远程分支 git branch -a #查看所有分支,本地和远程 git remote show [remot ...

  5. javaScript对象学习笔记(一)

    一.什么是对象 对象: JavaScript的一种基本数据类型 对象是属性的无序集合,每个属性都是一个名/值对 JavaScript中的事物都是对象:字符串.数值.数组.函数... JavaScrip ...

  6. Docker镜像压缩

    一.Dockerfile合理分层 Dockerfile的写法不合理,有时候会导致镜像膨胀,由于Docker是分层设计,而在Dockerfile中,每一条指令都拥有自己的context,而执行到下一条指 ...

  7. H5_background-clip(css3——裁剪)

    利用background-clip实现此效果 在body里面只需要写:<div class="box"></div> 在样式里面写上: .box{ widt ...

  8. Hibernate(二)之Hibernate-api详解

    一.Hibernate体系结构 二.Hibernate-api详解 2.1.Configuration配置对象 Configuration是用来加载配置文件的 我们Hibernate中主要有两个配置文 ...

  9. ajax大洋第一步

    Ajax工具包 Ajax并不是一项新技术,它实际上是几种技术,每种技术各尽其职,以一种全新的方式聚合在一起. 服务器端语言:服务器需要具备向浏览器发送特定信息的能力.Ajax与服务器端语言无关. XM ...

  10. Tensorflow学习笔记---0--TensorBoard

    运行mnist_with_summaries学习TensorBoard时,由于需要GPU支持,运行窗口报错:Couldn't open CUDA library cupti64_80.dll 解决办法 ...