• linux 使用中括号进行条件判断


    转载至:http://blog.chinaunix.net/uid-24362799-id-3383982.html

    格式

    “#”代表空格,不可缺少

    • [# param1#op# param2 #]

    这种带比较操作符的形式,op左右必须使用空格隔开.

    如 [# “3”==”2” #]  这种缺少空格的写法会得到结果“true”,当然实际应为”false”.

    • 变量的引用应使用双引号括起来 [# -z “$name” #].

    *********************

    name="Jim"

    [ $name == "Jack" ]   #将会变成 [ Jim == "Jack" ], 也就出现错误了.

    *********************

    • 常量应该使用双引号或单引号括起来 [# ‘1’#==#’10’ #].
    •  更好的书写方式:

    ****************************

    a. 中括号内的每一个组件都用空格隔开(可谓釜底抽薪)

    b. 变量都以双引号括起来

    ****************************

     参数

    -b file                若文件存在且是一个块特殊文件,则为真
    -c file                若文件存在且是一个字符特殊文件,则为真
    -d file                若文件存在且是一个目录,则为真
    -e file                若文件存在,则为真
    -f file                若文件存在且是一个规则文件,则为真
    -g file                若文件存在且设置了SGID位的值,则为真
    -h file                若文件存在且为一个符合链接,则为真
    -k file                若文件存在且设置了"sticky"位的值
    -p file                若文件存在且为一已命名管道,则为真
    -r file                若文件存在且可读,则为真
    -s file                若文件存在且其大小大于零,则为真
    -u file                若文件存在且设置了SUID位,则为真
    -w file                若文件存在且可写,则为真
    -x file                若文件存在且可执行,则为真
    -o file                若文件存在且被有效用户ID所拥有,则为真
    -z string              若string长度为0,则为真
    -n string              若string长度不为0,则为真
    string1 = string2      若两个字符串相等,则为真
    string1 != string2     若两个字符串不相等,则为真
    **********************************************************
    参与比较的数字必须能够转化为整数,话说那里有这个语法的manual?
    int1 -eq int2          若int1等于int2,则为真
    int1 -ne int2          若int1不等于int2,则为真
    int1 -lt int2          若int1小于int2,则为真
    int1 -le int2          若int1小于等于int2,则为真
    int1 -gt int2          若int1大于int2,则为真
    int1 -ge int2          若int1大于等于int2,则为真
    **********************************************************
    ! expr                  若expr为假则复合表达式为真。expr可以是任何有效的测试表达式
    expr1 -a expr2         若expr1和expr2都为真则整式为真
    expr1 -o expr2         若expr1和expr2有一个为真则整式为真
  • 相关阅读:
    Codeforces Round #346 (Div. 2) F. Polycarp and Hay 并查集 bfs
    Codeforces Round #346 (Div. 2) E. New Reform dfs
    Codeforces Round #346 (Div. 2) D. Bicycle Race 叉积
    Codeforces Round #346 (Div. 2) C. Tanya and Toys 贪心
    Codeforces Round #346 (Div. 2) B. Qualifying Contest 水题
    Codeforces Round #346 (Div. 2) A. Round House 水题
    VK Cup 2016
    Entity Framework DBFirst尝试
    Entity Framework简介
    设计模式之十(外观模式)
  • 原文地址:https://www.cnblogs.com/good-study/p/11088862.html
Copyright © 2020-2023  润新知