zoukankan      html  css  js  c++  java
  • 使用test命令进行进行条件测试

    使用test命令进行进行条件测试
          格式: test conditions
     
          test在以下四种情况下使用:

                    a. 字符比较

                    b.两个整数值的比较
                    c. 文件操作,如文件是否存在及文件的状态等
                    d. 逻辑操作,可以进行and/or,与其他条件联合使用
     
          a. 测试字符数据: shell变量通常均作为字符变量
            str1 = str2     二者相长,相同
            str1 != str2    不同
            -n string       string不为空(长度不为零)
            -z string       string为空
            string          string不为空
     
            例:
                    $ str1=abcd     #在含有空格时必须用引号括起来
                    $ test $str1=abcd
                    $ echo $?
                    0                        #无错
                    $ str1="abcd "
                    $ test $str1=abcd
                    $ echo $?
                     1                  #有错,因为str1的字符串后面还有个空格,不等于abcd
            Note: 在test处理含有空格的变量时最好用引号将变量括起来,否则会出现错误的
    结果,
                  因为shell在处理命令行时将会去掉多余的空格,而用引号括起来则可以防止
                  shell去掉这些空格.
                  例:
                    $ str1="    "
                    $ test $str1
                    $ echo $?
                    1
                    $ test "$str1"
                    $ echo $?
                    0
                    $ test -n $str1
                    test: argument expected
                    $ test -n "$str1"
                    $ echo $?
                    0
                    $
     
          b. 整数测试: test与expr相同,可以将字符型变量转换为整数进行操作,expr进行
             整数的算术运算,而test则进行逻辑运算.
     
             表达式                 说明
             ---------------------------------------
             int1 -eq int2          相等?
             int1 -ne int2          不等?
             int1 -gt int2          int1 > int2 ?
             int1 -ge int2          int1 >= int2 ?
             int1 -lt int2          int1 < int2 ?
             int1 -le int2          int1 <= int2 ?
     
             例:
                    $ int1=1234
                    $ int2=01234
                    $ test $int1 -eq $int2
                    $ echo $?
                    0
     
          c. 文件测试:检查文件状态如存在及读写权限等
     
             -r filename     用户对文件filename有读权限?
             -w filename     用户对文件filename有写权限?
             -x filename     用户对文件filename有可执行权限?
             -f filename     文件filename为普通文件?
             -d filename     文件filename为目录?
             -c filename     文件filename为字符设备文件?
             -b filename     文件filename为块设备文件?
             -s filename     文件filename大小不为零?
             -t fnumb        与文件描述符fnumb(默认值为1)相关的设备是一个终端设备?
     
          d. 测试条件之否定,使用!
            例:
                    $ cat /dev/null > empty
                    $ test -r empty
                    $ echo $?
                    0
                    $ test -s empty
                    1
                    $ test ! -s empty
                    $ echo $?
                    0
          e. 测试条件之逻辑运算
            -a      And
            -o      Or
     
            例: $ test -r empty -a -s empty
                $ echo $?
                1
          f. 进行test测试的标准方法
             因为test命令在 shell编程中占有很重要的地位,为了使shell能同其他编程语言
    一样
             便于阅读和组织, Bourne Shell在使用test测试时使用了另一种方法:用方括号将
    整个
             test测试括起来:
     
             $ int1=4
             $ [ $int1 -gt 2 ]
             $ echo $?
             0

  • 相关阅读:
    deepin系统安装php扩展(或者统信UOS系统)
    前后端分离项目,访问后端接口跨域问题解决办法
    python打乱一个文件行数据
    python获取文件行数
    SQL进阶
    方便下载书籍网站
    gpuz软件下载
    U盘制作-安装win10系统
    docker -Docker安装FileBrowser实现网页版文件管理器
    OCP 063中文考试题库(cuug内部资料)第44题
  • 原文地址:https://www.cnblogs.com/luwikes/p/2176581.html
Copyright © 2011-2022 走看看