zoukankan      html  css  js  c++  java
  • 【shell】条件测试


    通常,在bash的各种条件结构和流程控制结构中都要进行各种测试,然后根据测试结果执行不同的操作。执行条件测试通常会返回"真"或"假",类似执行命令,返回0是真,返回非0是假。

    1.条件测试常用的方法

    条件测试语法 说明
    语法1:test <测试表达式> 利用test命令进行条,test后有一个空格
    语法2:[ <测试表达式> ] 通过单中括号进行,单中括号中的内容前后都有一个空格
    语法3:[[ <测试表达式> ]] 通过双中括号进行,双中括号中的内容前后都有一个空格
    语法4:((<测试表达式>)) 通过双小括号进行,双小括号中的内容前后无空格

    特别说明:

    注意:推荐使用语法2
    &&、||、>、<等操作符可以应用于[[]]中,但是在[]是不能使用,在[]中一般用-a、-o、-gt等替代

    2.test条件测试的简单语句和实例

    语法:test <测试表达式>

    案例一:test命令

    [qinys@localhost 20200313]$ test -f a.txt && echo true || echo false
    false
    

    语句中涉及的a.txt文件是不存在的,所以输出false,此处条件为真,则执行&&后的语句,条件为假,则执行||后的语句
    上述逻辑是一个联合逻辑,也可以将上述逻辑拆分开,拆分如下:

    [qinys@localhost 20200313]$ test -f a.txt && echo true
    [qinys@localhost 20200313]$ test -f a.txt || echo false
    false
    
    

    案例二:test命令中使用-z选项
    -z选项表示:如果测试字符串的长度为0,则表达式成立

    [qinys@localhost 20200313]$ test -z "" && echo 1 || echo 0
    1
    [qinys@localhost 20200313]$ test -z "abc" && echo 1 || echo 0
    0
    

    3.[]条件测试语法及实例

    语法:[ <测试表达式> ]

    中括号内部的两端要有空格,[]与test等价,即test的所有判断选项都可以直接在[]里使用

    以下是演示案例:使用[]实现条件测试

    [qinys@localhost 20200313]$ [ -f a.txt ] && echo true || echo false
    false
    

    此处的条件测试同样可以拆分,拆分后为:

    [qinys@localhost 20200313]$ [ -f a.txt ] && echo true 
    [qinys@localhost 20200313]$ [ -f a.txt ] || echo false
    false
    

    4.[[]]条件测试语法及实例

    语法:[[ <测试表达式> ]]

    以下是演示案例:使用[[]]实现条件测试

    [qinys@localhost 20200313]$ [[ -f a.txt ]] && echo true || echo false
    false
    

    此处的条件测试同样可以拆分,拆分后为:

    [qinys@localhost 20200313]$ [[ -f a.txt ]] && echo true 
    [qinys@localhost 20200313]$ [[ -f a.txt ]] || echo false
    false
    
  • 相关阅读:
    linux下修改Mysql的字符编码方式
    创建XMPP工程步骤
    ClickOnce清单签名取消后依然读取证书的问题
    FxCop卸载后依然生成文件夹的问题
    使用了旧版nuget的.net项目在git中的问题
    CorelDraw X8 破解激活问题
    ASUS T100TA 换屏要记
    百度SMS SDK for .Net
    网易闪电邮
    《The Practice and Theory of Bolshevism》的笔记-第114页
  • 原文地址:https://www.cnblogs.com/OliverQin/p/12487609.html
Copyright © 2011-2022 走看看