zoukankan      html  css  js  c++  java
  • shell IF分支判断语句

    单分支IF条件语句

    if [ 条件判断式 ] then
      程序;
    fi //结束的时候if反过来写 fi
    -----------------------------
    /**
     * if test -d $1 then ... else ..fi
     * 变量测试语句可以用[]进行简化,如test -d $1 等价于[ -d $1 ] (注意空格不要少了)
    **/ 
    *) if语句使用fi结尾和一般语言使用大括号结尾不同
    *)[条件判断式] 就是使用test命令判断,所以中括号和条件判断式之间必须有空格
    *)then 后面跟符号条件之后执行的程序,可以放在[]之后,用";"分割。也可以换行写入,就不需要";"了
    ---------------------使用实例-----------------
    "判断登录的用户是否为root"
    #!/bin/bash(改行表示语言标志)
    test $(env | grep "USER" | cut -d "=" -f 2)
    if[ "$test"==root ]
     then
      echo "current user is root"
    fi
    -------------------------------------------------
    "判断分区使用率"
    #!/bin/bash
    test =$(df -h | grep sda5 | awk '{print $5}' | cut -d "%" -f 1)
    #把分区使用率作为变量值赋予变量rate
    if [ -ge 90 ]
      then
        echo "文件满了"
    fi 
    

    多分支语句

    if [ 条件判断式1 ]
     then
      当条件判断式1成立时,执行程序1
    elif [ 条件判断式2 ]
     then
      当条件判断式2成立时,执行程序2
    ...省略更多条件....
    else
      当所有条件都不成立,最后执行此程序
    fi
    

    双分支语句

    if [ 条件判断式 ]
     then 
       条件成立时,执行的程序
     else
       条件不成立时,执行的另一个程序
    fi
    
    "判断输入的是不是目录"
    #!/bin/bash
     read -t 30 -p "please input a dir :" dir
     if[ -d "$dir" ] //注意前后的空格
       then
        echo "输入的是目录"
       else
        echo "输入的不是目录"
    fi
    
    
    "判断apache是否启动"
    #!/bin/bash
    test = $(ps aux | grep httpd | grep -v grep)
    #截取httpd进程,并把结果赋予变量test
    if [ -n test ]
    #如果test不为空
     then
      echo "the apache is on running!" >> /~/running.log
     else
      /etc/rc.d/init.d/httpd start &> dev/null
      echo "the apache is restart!" >> /~/restart.log
    fi
    
  • 相关阅读:
    数论2&莫&杜
    虚树学习笔记
    LinkCutTree学习笔记
    FWT学习笔记
    容斥
    线段树合并
    线性基
    FFT_应用和例题
    斜率优化
    Redis中String的底层实现
  • 原文地址:https://www.cnblogs.com/ssgao/p/8871600.html
Copyright © 2011-2022 走看看