zoukankan      html  css  js  c++  java
  • Linux编程 24 shell编程(结构化 if [ condition ] 数值比较,字符串比较)

    一.概述

      接着上篇讲的结构化命令,最后讲到了test命令的另一种写法 if [ condition ],它的语法格式如下:

    --格式如下:
    if  [ condition ]
    then 
        commands
    fi

      第一个方括号之后和第二个方括号之前必须加上一个空格,否则就会报错。test命令可以判断三类条件:(1)数值比较(2)字符串比较(3)文件比较。

      1.1  数值比较

    比较

    描述

    例如

    n1 -gq n2

    检查n1是否与n2相等 

    N1 ==N2

    n1 -ge n2

    检查n1是否大于或等于n2

    N1 >=N2

    n1 -gt n2

    检查n1是否大于n2

    N1 < N2

    n1 -le n2

    检查n1是否小于或等于n2

    N1 <=N2

    n1 -lt n2

    检查n1是否小于n2

    N1 <N2

    n1 -ne n2

    检查n1是否不等于n2

    N1 !=N2

        下面测试脚本中,第一个条件使用 -gt,  value1是否大于value2。 第二个条件使用-eq 测试value1 是否与value2相等。
              
        
    但涉及到浮点数时,就会出错,bash shell 只能处理整数,如下所示:

              

        对于浮点数处理,在前面章节中讲过使用bc 命令,下面脚本中先用bc来判断,如果条件成立则返回1, 条件不成立返回0, 下面的var1变量返回为1,输出了echo语句信息。
              

      1.2  字符串比较

    比较

    描述

    str1 = str2

     检查str1是否与 str2 相同

    str1 != str2

     检查str1是否与 str2 不同

    str1 < str2

     检查str1是否比 str2 小

    str1 > str2

     检查str1是否比 str2 大

    -n str1

     检查str1的长度是否非0

    -z str1

     检查str1的长度是否为0

        (1) 字符串相等案例, 相等成立,输出了echo 信息。不等于案例就不在演示。
              
        (2) 字符串比较
          对于字符串比较,在编程中很少使用,这里不在演示。 比较是使用标准的ascii顺序。
        (3) 字符串大小
          使用-n 和 -z 可以检查一个变量是否有数据,如下所示变量value1的值不为空,条件成立。
              
          下面一个案例是 value1变量从未被定义过, 判断长度是否为0,  未被定义的变量但长度仍然是0,输出了if then中的echo信息。
              
          总结:空的和未初始化的变量会对shell脚本测试造成空难性的影响,如果不确定一个变量的内容,最好在将用于数值或字符串比较之前先通过-z来测试变量是否有值。 下面案例中valu1变量未定义,value2变量内容为空,value3变量内容不为空, 分别输出信息如下:
              

  • 相关阅读:
    (转)Spring Boot(十八):使用 Spring Boot 集成 FastDFS
    (转)Spring Boot(十七):使用 Spring Boot 上传文件
    (转)Spring Boot(十六):使用 Jenkins 部署 Spring Boot
    (转)Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例
    (转)Spring Boot (十四): Spring Boot 整合 Shiro-登录认证和权限管理
    (转)Spring Boot (十三): Spring Boot 小技巧
    (转)Spring Boot(十二):Spring Boot 如何测试打包部署
    (转)Spring Boot(十一):Spring Boot 中 MongoDB 的使用
    第一节 MongoDB介绍及下载与安装
    RDLC报表总结
  • 原文地址:https://www.cnblogs.com/MrHSR/p/9791551.html
Copyright © 2011-2022 走看看