zoukankan      html  css  js  c++  java
  • Shell编程中的条件判断(条件测试)

    Shell中的条件判断(测试)类型:

    1) 整数测试

    2) 字符测试

    3) 文件测试

    条件测试的表达式:        (注: expression 与 [] 之间空格不能省略)

    [ expression ]

    [[ expression ]]

    test expression

         expression的逻辑结果即为整个条件测试的结果,0为真,其他结果均为假.

     

    expression中为整数比较时:

    -eq: 测试两个整数是否相等, 比如 $A -eq $B;                      --equal                          
    -ne: 测试两个整数是否不等;不等,为真;相等,为假;          --not equal
    -gt: 测试一个数是否大于另一个数;大于,为真;否则,为假;  --great than
    -lt: 测试一个数是否小于另一个数;小于,为真;否则,为假;   --less than
    -ge: 大于或等于                                                            --great or equal
    -le:小于或等于                                                             --less equal

     1 /*
     2  * 给定一个用户:
     3  *    1、如果其UID为0,就显示此为管理员;
     4  *    2、否则,就显示其为普通用户;
     5 **/
     6 
     7 #!/bin/bash
     8 
     9 USER=root
    10 if [ `id -u $USER` -eq 0 ]; then
    11     echo 'Administrator'
    12 else
    13     echo 'Common User'
    14 fi

     

    expression中为文件测试时: 

    -e FILE:测试文件是否存在 ;
    -f FILE: 测试文件是否为普通文件 ;
    -d FILE: 测试指定路径是否为目录 ;
    -r FILE: 测试当前用户对指定文件是否有读取权限;
    -w FILE: 测试当前用户对指定文件是否有写权限;
    -x FILE: 测试当前用户对指定文件是否有执行权限;   

    1 #!/bin/bash
    2 #
    3 FILE=/etc/inittab
    4 if [ ! -e $FILE ]; then
    5     echo "The file doesn't exist."
    6     exit 8
    7 fi
    8 ...

    expression中为字符(串)测试:       

    ==:测试是否相等,相等为真,不等为假    (=也可,因为shell能识别)
    !=: 测试是否不等,不等为真,等为假      (等号两端要有空格)
    > :  
    < :
    -n string: 测试指定字符串是否为空,空则真,不空则假
    -z string: 测试指定字符串是否不空,不空为真,空则为假

  • 相关阅读:
    CF687D Dividing Kingdom II
    图论——EK算法
    P6082 [JSOI2015]salesman
    联合权值——树上问题2014noip
    P2071 座位安排——二分图最大匹配
    匈牙利优化时间戳的正确性
    P1541 乌龟棋——线性动规
    P1858 多人背包
    P3558 [POI2013]BAJ-Bytecomputer——线性动归
    P2303 [SDOI2012] Longge 的问题
  • 原文地址:https://www.cnblogs.com/ant-colonies/p/6269684.html
Copyright © 2011-2022 走看看