zoukankan      html  css  js  c++  java
  • shell编程中的if语句

    if语句在任何编程中都是必不可少、至关重要的分支语句,shell也是如此,只不过各种编程中的方式和格式有点不太一样

    shell编程中的if语句基本格式如下:

    if [ X$1 = XA ];then
        command;
    elif [ X$1 = XB ];then
        command;
    else
        command;
    fi
    

    注意:[ ]前后都有空格和if以及变量分开

    也可以写成如下形式:

    if test X$1 = XA;then
        command
    elif test X$1 = XB;then
        command
    else
        command
    fi

    下面是一些常用的比较符号

    数值比较相关参数:
    -eq 等于,如:if [ "$a" -eq "$b" ] 
    -ne 不等于,如:if [ "$a" -ne "$b" ] 
    -gt 大于,如:if [ "$a" -gt "$b" ] 
    -ge 大于等于,如:if [ "$a" -ge "$b" ] 
    -lt 小于,如:if [ "$a" -lt "$b" ] 
    -le 小于等于,如:if [ "$a" -le "$b" ] 
    大于(需要双括号),如:(("$a" > "$b")) 
    >= 大于等于(需要双括号),如:(("$a" >= "$b")) 

    字符比较相关参数:
    = 等于,如:if [ "$a" = "$b" ] 
    == 等于,如:if [ "$a" == "$b" ],与=等价 

    文件比较:
    f1-nt f2      f1比f2修改时间新则返回真
    f1-ot f2      f1比f2修改时间旧则返回真


    [[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true 
    2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true 
    3 [ $a == z* ] # File globbing 和word splitting将会发生 
    4 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true 

    普通判断
    -a   and
    -o   or
    !       非

    命令间使用如下and和or
    &&  and
    ‖    or

    文件类
    string   字符串非空
    -z string    为空则真
    -n string    非空则真
    -e FILE       文件存在为真
    -f file         文件为普通文件为真
    -d file        为目录时为真
    -r file    文件是否有读权限
    -w file 文件是否有写权限
    -x file   文件是否有执行权限
    -s file       如果file存在且大小不为0则为真
    -O file      如果file存在且属于有效uid则为真
    -g  file文件是否具有sgid
    -G file   如果file存在且属于有效gid则为真
    -u  file文件是否有suid
    -k  file是否有粘滞位

    关于本篇内容如有转载请注明出处;技术内容的探讨、纠错,请发邮件到70907583@qq.com
  • 相关阅读:
    统计学习方法学习笔记第二章(感知机)
    filebeat句柄占用问题
    小组年终总结的汇总
    使用docker制作zookeeper镜像
    普罗米修斯在k8s上面的部署
    k8s亲和性和反亲和性的理解
    AlertManager 的在k8s集群上面的安装部署使用
    filebeat生产上面镜像制作的流程
    普罗米修斯生产上面的性能优化点
    AlertManger集群的搭建
  • 原文地址:https://www.cnblogs.com/watertaro/p/9220928.html
Copyright © 2011-2022 走看看