• shell test命令


    写shell脚本,经常会遇到判断条件,例如判断字符相不相等、文件存不存在。下面从数字、字符、文件三个方面梳理一下判断方法。

    1、数值测试

    -eq 等于返回真
    -ne 不等于返回真
    -gt 大于返回真
    -ge 大于等于返回真
    -lt 小于返回真
    -le 小于等于返回真

     

     

     

     

     

     

     

    示例

    num1=100 
    num2=100 
    if test $[num1] -eq $[num2] 
    then 
          echo '两个数相等!' 
    else 
          echo '两个数不相等!' 
    fi
    
    输出:
    两个数相等!
    
    -----------------------------------------------------
    #代码中的[]执行基本的算数运算,如:
    
    #!/bin/bash 
    a=5 
    b=6 
    result=$[a+b]    #注意等号两边不能有空格
    echo    "result 为:$result"
    输出:
    result 为:11

    2、字符串测试

    = 等于则返回真
    != 不相等则返回真
    -z 字符串 字符串长度为零则返回真
    -n 字符串 字符串长度不为零则返回真

     

     

     

     

     

    示例

    num1="ru1noob" 
    num2="runoob" 
    if test $num1 = $num2 
    then 
          echo '两个字符串相等!' 
    else 
          echo '两个字符串不相等!' 
    fi
    
    输出:
    两个字符串不相等!

    3、文件测试

    -e 文件名 如果文件存在则为真
    -r 文件名 如果文件存在且可读则为真 
    -w 文件名 如果文件存在且可写则为真 
    -x 文件名 如果文件存在且可执行则为真 
    -s 文件名 如果文件存在且至少有一个字符则为真 
    -d 文件名 如果文件存在且为目录则为真 
    -f 文件名 如果文件存在且为普通文件则为真 
    -c 文件名 如果文件存在且为字符型特殊文件则为真 
    -b 文件名 如果文件存在且为块特殊文件则为真

     

     

     

     

     

     

    cd /bin
    if test -e ./bash 
    then 
        echo '文件已存在!' 
    else 
        echo '文件不存在!' 
    fi
    
    输出:
    文件已存在!

    Shell还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,优 先级从高到低依次为:”!”,”-a”,”-o”。

    cd /bin 
    if test -e ./notFile -o -e ./bash 
    then 
        echo    '有一个文件存在!' 
    else 
        echo    '两个文件都不存在' 
    fi
    
    输出:
    有一个文件存在!

     

  • 相关阅读:
    Java多线程——volatile关键字、发布和逸出
    线程安全性的基础知识
    maven web不能创建src/main/java等文件等问题
    web环境中的spring MVC
    Spring AOP 概述
    golang统计出其中英文字母、空格、数字和其它字符的个数
    go语言求1到100之内的质数
    golang fmt占位符
    golang---map类型
    golang切片类型
  • 原文地址:https://www.cnblogs.com/yanh0606/p/11396969.html
Copyright © 2020-2023  润新知