zoukankan      html  css  js  c++  java
  • Shell总结04-测试和分支

    Shell总结04-测试和分支

    test条件测试

    # “[]”是调用test命令的一种形式
    
    ##文件操作
    #     [ -e file ] :判断文件是否存在 
    #     [ -d dir ]  :判断目录dir是否存在
    #     [ -b file ]  :判断块设备是否存在
    #     [ -c file ]  :判断字符设备是否存在
    #     [ –S File ]  : 套接字文件是否存在
    #     [ –r File ]  : 文件是否可读
    #     [ –w File ]  : 文件是否可写
    #     [ –x File ]  : 文件是否可执行
    
    ##数值比较操作
    #      [ n1 -eq n2 ]	n1,n2是否相等
    #      [ n1 –ne n2 ] n1不等于n2 
    #      [ n1 –ge n2 ] n1大于等于n2 
    #      [ n1 –gt n2 ] n1大于n2
    #      [ $x = $y ] :判断$x和$y是否相等  
    
    #      [ -x /bin/ls ] :判断/bin/ls是否存在并有可执行权限 
    #      [ -n $var ] :判断$var变量是否有值 
    
    

    if then/else(elif))分支

    #条件测试通常和if+else/elif+fi代码块儿配合使用,例如
    if [ ! -d $NX_LOG ]; then
       mkdir -p $NX_LOG
    fi
    ##磁盘空间检查
    ## cat disktest.sh
    #!/bin/bash
    # This script does a very simple test for checking disk space.
    space=`df −h | awk '{print $5}' | grep % | grep −v Use | sort −n | tail −1 | cut −d "%"
    −f1 −`
    alertvalue="80"
    if [ "$space" −ge "$alertvalue" ]; then
    echo "At least one of my disks is nearly full!" | mail −s "daily diskcheck" root
    else
    echo "Disk space normal" | mail −s "daily diskcheck" root
    fi
    

    case (in) esac分支

    case "$variable" in
      "$condition1" )
        command...
      ;;
      "$condition2" )
        command...
      ;;
    esac
    
    ##系统服务启停命令的实现
    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        status)
            status anacron
            ;;
        restart)
            stop
            start
            ;;
        condrestart)
            if test "x`pidof anacron`" != x; then
                stop
                start
            fi
            ;;
        *)
            echo $"Usage: $0 {start|stop|restart|condrestart|status}"
            exit 1
    esac
    
    #对变量进行引用不是必须的,因为在这里不会进行字符分割。
    #条件测试语句必须以右括号 ) 结束。
    #每一段代码块都必须以双分号 ;; 结束。
    #如果测试条件为真,其对应的代码块将被执行,而后整个 case 代码段结束执行。
    #case 代码段必须以 esac 结束(倒着拼写case)。
    
  • 相关阅读:
    实现一个文件系统
    ICN开发指导
    GPU in container
    docker debug
    内核代码中一些c语言用法
    各种Tree的python 实现
    intel VT-X (VMX) spec 解读
    intel VT-D (iommu) spec 解读
    正交幅度调制QAM
    Load balancer does not have available server for client:xxx
  • 原文地址:https://www.cnblogs.com/elfcafe/p/13138482.html
Copyright © 2011-2022 走看看