zoukankan      html  css  js  c++  java
  • 【shell】test判断

    #!/bin/bash
    #shell test命令
    #Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
    
    
    # -eq    等于则为真
    # -ne    不等于则为真
    # -gt    大于则为真
    # -ge    大于等于则为真
    # -lt    小于则为真
    # -le    小于等于则为真
    
    num1=100
    num2=200
    
    if test $[num1] -eq $[num2]
    then
        echo "num1 == num2";
    else
        echo "num1 != num2";
    fi
    
    #上面这种写法是否可行呢?
    if test $num1 -eq $num2
    then
        echo "num1 == num2";
    
    else
        echo "num1 !=num2"fi
    
    #经过测试发现也是可行的
    
    
    
    # 代码中的 [] 执行基本的算数运算,如:
    result=$[num1+num2]
    echo "$result";
    # 在运算符篇,计算两个参数相加需要expr表达式
    echo "expr表达式计算相加:`expr $num1 + $num2 `" ;
    
    # 试一试 使用 [] 执行算术运算符,发现也是可行
    echo "$[num1-num2]";
    echo $[num1*num2];
    echo $[num1%num2];
    
    
    
    echo "============字符串测试=================";
    # =    等于则为真
    # !=    不相等则为真
    # -z 字符串    字符串的长度为零则为真
    # -n 字符串    字符串的长度不为零则为真
    
    a="java";
    b="c++";
    if test $a = $b
    then
        echo "a=b";
    else
        echo "a!=b";
    fi    
    
    if test -z $a
    then
        echo "长度为0";
    else
        echo "长度不为0";
    fi    
    
    echo "============文件测试=================";
    
    # -e 文件名    如果文件存在则为真
    # -r 文件名    如果文件存在且可读则为真
    # -w 文件名    如果文件存在且可写则为真
    # -x 文件名    如果文件存在且可执行则为真
    # -s 文件名    如果文件存在且至少有一个字符则为真
    # -d 文件名    如果文件存在且为目录则为真
    # -f 文件名    如果文件存在且为普通文件则为真
    # -c 文件名    如果文件存在且为字符型特殊文件则为真
    # -b 文件名    如果文件存在且为块特殊文件则为真
    file="C:UsersEDZDesktopshelldemo.txt";
    
    if test -e $file
    then
        echo "文件存在";
    fi
    
    # Shell 还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为: ! 最高, -a 次之, -o 最低。例如:
    
    if test -e $file -o  -e "C:A.TXT"
    then
        echo "存在一个文件";
    else
        echo "两个文件必须都存在";
    fi
  • 相关阅读:
    spring @Transactional 事务注解
    vue 父子组件的方法调用
    spring boot使用TestRestTemplate集成测试 RESTful 接口
    JS实现网站内容的禁止复制和粘贴、另存为
    vue把localhost改成ip地址无法访问—解决方法
    spring mvc spring boot 允许跨域请求 配置类
    JIRA安装过程中链接mysql的问题!
    vue开发中v-for在Eslint的规则检查下出现:Elements in iteration expect to have 'v-bind:key' directives
    Linux进程启动/指令执行方式研究
    反弹Shell原理及检测技术研究
  • 原文地址:https://www.cnblogs.com/gyjx2016/p/13565587.html
Copyright © 2011-2022 走看看