zoukankan      html  css  js  c++  java
  • Shell中的测试命令

    Shell中有多种针对文件、字符串、数值的条件测试命令,用于检查某个条件是否成立。下面分别进行讲解。

    三种测试的命令的表达方式

    • test,语法格式为:test <condition>
    • [ ],语法格式为:[ <condition> ]
    • [[ ]],语法格式为:[[ <condition> ]]
      前两种的条件格式一样,可以通用,仅仅是写法的不同。但双中括号形式是前两者的扩展,可以在测试语句中使用与 &&、或 ||来同时对几种条件进行测试,而在单中括号或test中则需要利用-a和-o来表示与和或,且与或非的优先级依次递减。

    三种测试用途

    一、数值测试

    参数说明
    -eq等于则为真
    -ne不等于则为真
    -gt大于则为真
    -ge大于等于则为真
    -lt小于则为真
    -le小于等于则为真

    实例

    [root@host]# a=5
    [root@host]# test $a -eq 5
    0
    [root@host]# [ $a -gt 8 ] &&echo 0 ||echo 1
    1
    [root@host]# [[ $a -le 5 ]] &&echo 0 ||echo 1
    0
    

    二、字符串测试

    1. 对于字符串比较测试,务必记住无论是常量字符串还是变量应用一定一定要在两端加双引号.
    2. 在比较关系符两端一定要加空格。
    参数说明
    =等于则为真(=两端要加空格)
    !=不等于则为真(=两端要加空格)
    >大于则为真(仅用于[[ ]],加空格)
    <小等则为真(仅用于[[ ]],加空格)
    -n字符串长度不为0则为真
    -z字符串为空则为真

    实例

    [root@host]# a="leon"
    [root@host]# test -n "$a" &&echo 0 ||echo 1
    0
    [root@host]# [ "$a" = "leo" ] &&echo 0 ||echo 1
    1
    [root@host]# [[ "$a" > "leo" ]] &&echo 0 ||echo 1
    0
    

    三、文件测试

    参数说明
    -e文件存在则为真
    -f文件存在,且为普通文件则为真
    -d文件存在,且为目录文件则为真
    -L文件存在,且为链接文件则为真
    -c文件存在,且为字符设备文件则为真
    -b文件存在,且为块设备文件则为真
    -r文件存在,且为可读文件则为真
    -w文件存在,且为可写文件则为真
    -x文件存在,且为可执行文件则为真
    -s文件存在,且为非空文件则为真

    实例

    [root@host]# a=/bin/ls
    [root@host]# test -x "$a" &&sh $a
    a.c   b.c   d.sh 
    [root@host]# [[ -x "$a" && -s "$a" ]] &&echo0||echo1
    0
    
  • 相关阅读:
    WHERE col1=val1 AND col2=val2;index exists on col1 and col2, the appropriate rows can be fetched directly
    MySQL 交集 实现方法
    MBProgressHUD的使用
    Xcode4 使用 Organizer 分析 Crash logs(转)
    SimpleXML 使用详细例子
    PHP的XML Parser(转)
    iPhone,iPhone4,iPad程序启动画面的总结 (转)
    Pop3得到的Email 信件格式介绍
    yii总结
    隐藏Tabbar的一些方法
  • 原文地址:https://www.cnblogs.com/leon1124/p/14039840.html
Copyright © 2011-2022 走看看