zoukankan      html  css  js  c++  java
  • Shell 条件判断

    传统if 从句子——以条件表达式作为 if条件 
    if [ 条件表达式 ] 
    then 
    command 
    command 
    command 
    else 
    command 
    command 
    fi 
       
       条件表达式 

    文件表达式 
    if [ -f  file ]    如果文件存在 
    if [ -d ...   ]    如果目录存在 
    if [ -s file  ]    如果文件存在且非空 
    if [ -r file  ]    如果文件存在且可读 
    if [ -w file  ]    如果文件存在且可写 
    if [ -x file  ]    如果文件存在且可执行   

    整数变量表达式 
    if [ int1 -eq int2 ]    如果int1等于int2   
    if [ int1 -ne int2 ]    如果不等于    
    if [ int1 -ge int2 ]       如果>= 
    if [ int1 -gt int2 ]       如果> 
    if [ int1 -le int2 ]       如果<= 
    if [ int1 -lt int2 ]       如果< 
       

       字符串变量表达式 
    If  [ $a = $b ]                 如果string1等于string2 
                                    字符串允许使用赋值号做等号 
    if  [ $string1 !=  $string2 ]   如果string1不等于string2       
    if  [ -n $string  ]             如果string 非空(非0),返回0(true)  
    if  [ -z $string  ]             如果string 为空 
    if  [ $sting ]                  如果string 非空,返回0 (和-n类似)    

    逻辑非 !                   条件表达式的相反 
    if [ ! 表达式 ] 
    if [ ! -d $num ]                        如果不存在目录$num 


        逻辑与 –a                    条件表达式的并列 
    if [ 表达式1  –a  表达式2 ] 


        逻辑或 -o                    条件表达式的或 
    if [ 表达式1  –o 表达式2 ] 

       
       逻辑表达式 

        表达式与前面的=  != -d –f –x -ne -eq -lt等合用 
        逻辑符号就正常的接其他表达式,没有任何括号( ),就是并列 
    if [ -z "$JHHOME" -a -d $HOME/$num ] 

        注意逻辑与-a与逻辑或-o很容易和其他字符串或文件的运算符号搞混了 


      最常见的赋值形式,赋值前对=两边的变量都进行评测 
    左边测变量是否为空,右边测目录(值)是否存在(值是否有效) 

    if test $num -eq 0      等价于   if [ $num –eq 0 ] 

  • 相关阅读:
    数据结构基础知识(2)
    ASIHttpRequest异步请求网络崩溃解决
    [置顶] Android仿人人客户端(v5.7.1)——采用ViewGroup做父容器,实现左侧滑动菜单(三)
    Linux中ifcfgeth0配置参数说明
    什么是redis
    CentOS网络接口配置文件ifcfgeth详解
    查看Linux版本
    CentOS7 network.service loaded failed 处理技巧
    如果这都不算爱
    ACL Security In Seam, Part 1
  • 原文地址:https://www.cnblogs.com/zlingh/p/3879657.html
Copyright © 2011-2022 走看看