Bash Shell 小功能实现收集

 

 判断命令执行后的返回值

  • 执行一个命令后,会有相应的返回值,表示该命令执行的情况
  • 脚本中捕获命令执行后的返回值
    # hello 是一本不存在的命令或者脚本
    hello
    
    if [ 127 -eq $? ]; then
            echo '127 -ne ~'
    fi
    View Code

     

 

判断参数是否为空

  • 参数不能为空
    if [ -z "$*" ]; then
            echo -e "\tWarning: must has option. Please run with '-h' get help informations.\n"
            exit 1
    fi
    View Code

    判断时,双引号不能少 

     

 

判断当前用户是不是 root

  • 判断当前用户,不是 root 就退出
    if [ "root" == $(whoami) ]; then
            echo $(whoami)
    else
            echo -e "  Please login with root privlegess.\n"
            exit 2
    fi
    View Code

    适用必须是 root 的场合

     
  • check for root user to use script
    #check for root user
    if [ "$(id -u)" -ne 0 ] ; then
            echo "You must run this script as root. Sorry!"
            exit 1
    fi
    View Code

     

 

Bash Shell 的参数扩展

  • 三个选项,一个无参,两个有参
    while getopts ":g:s:h" opt; do
    
        case "$opt" in
            # Valid options.
            "g")
                echo -e "\tPackage Name: $OPTARG."
                    get $OPTARG
                ;;
            "s")
                    echo -e "\tPackage Name: $OPTARG."
                    set $OPTARG
                ;;
            "h")
                    help
                    ;;
            ":")    # Silent, without arg
                echo -e "\tOption $OPTARG has't parameter."
                ;;
            "?")    # Not silent, without arg. And invalid option.
                echo -e "\tInvalid option $OPTARG."
                ;;
            "*")    # Impossible to implement.
                echo -e "\tunkown error from arg."
                ;;
        esac
    done
    View Code

     

 

服务托管

  • sysv
    #! /bin/bash
    #
    # Daemo up/down
    #
    # chkconfig: 35 10 90
    # description: start at boot time.
    #
    
    PID=
    
    case "$1" in
      start)
        /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf &>/dev/null
        PID=$(pidof redis-server)
        echo $PID
        ;;
      stop)
        ;;
      status)
        echo "你来写?牛的不行!"
        ;;
      restart|reload|force-reload)
        ;;
      *)
            echo $"Usage: $0 {start}"
    esac
    exit 1
    View Code

    托管的思想:就是在控制服务启动的脚本文件中添加 【

    # chkconfig: 35 10 90
    # description: start at boot time.

    】 这么两行内容,chkconfig 指定了启动的级别(35),启动顺序,关闭顺序。description 作为脚本的功能描述。

 

 

 

 

 

Bash Shell 小功能实现收集_第1张图片

你可能感兴趣的:(Bash Shell 小功能实现收集)