• 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: 测试指定字符串是否不空,不空为真,空则为假

  • 相关阅读:
    Job for docker.service failed because the control process exited with error code. See
    连接数据库出现The server time zone value '�й���׼ʱ��' is unrecogni等问题的解决方案
    【面试】SSH 框架原理
    【面试】Spring 执行流程
    【面试】Redis
    Innosetup打包自动下载.net framework 动态库及替换卸载程序图标.
    分享一个带有合计行功能的DataGridView扩展
    记录一次系统优化
    使用 Cordova(PhoneGap)构建Android程序
    分享一个换肤解决方案
  • 原文地址:https://www.cnblogs.com/ant-colonies/p/6269684.html
Copyright © 2020-2023  润新知