zoukankan      html  css  js  c++  java
  • 处理命令行参数

    funcs=($(declare -F -p | cut -d " " -f 3))

    until
        if [ ! -z "$1" ]; then
            # check if the first arg is a function in this file, or use a default
            if [[ " ${funcs[@]} " =~ " $1 " ]]; then
                cmd=$1
                shift 1
            else
                cmd="a"
            fi

            $cmd "$@"
            if [ $? == 127 ]; then
                help
            fi

            exit
        else
            help
        fi
    do
        echo
    done

    --------------------------------

    测试:

    #!/bin/bash

    #set -e

    help(){
        echo "help"
    }

    a(){
    echo "aaaaaaa"
    }

    b(){
    echo "bbbbbb"
    }

    c(){
    echo "cccccc"
    }

    funcs=($(declare -F -p | cut -d " " -f 3))

    until
        if [ ! -z "$1" ]; then
            # check if the first arg is a function in this file, or use a default
            if [[ " ${funcs[@]} " =~ " $1 " ]]; then
                cmd=$1
                shift 1
            else
                cmd="a"
            fi

            $cmd "$@"
            if [ $? == 127 ]; then
                help
            fi

            exit
        else
            help
        fi
    do
        echo
    done

    -----------------------

    [root@mhc sh]# ./a
    help
    [root@mhc sh]# ./a a
    aaaaaaa
    [root@mhc sh]# ./a b
    bbbbbb
    [root@mhc sh]# ./a c
    cccccc
    [root@mhc sh]# ./a  a b
    aaaaaaa
    [root@mhc sh]# ./a  a b c
    aaaaaaa
    [root@mhc sh]# ./a  b c
    bbbbbb
    [root@mhc sh]# ./a  b c d
    bbbbbb
    [root@mhc sh]# ./a   d
    aaaaaaa
    -------------------------------------

    a(){
    echo "$1"
    }

    ---------

    [root@mhc sh]# ./a a hahah
    hahah
    ---------------------------

    =====================================================

    until
    cmd=$1
    if [[ -z "$cmd" ]]; then
    help
    fi
    shift 1
    $cmd "$@"
    [ "$?" -ne 127 ]
    do
    help
    exit
    done
  • 相关阅读:
    使用Python将excel文件中的数据提取到txt中
    多项式加法的链表实现
    hdu 5976 Detachment 逆元的应用
    JavaScript 全局函数
    JavaScript 事件句柄
    JavaScript 运算符
    纯Javascript 实现的日历 ,在IE所有版本浏览器上测试通过,火狐、谷歌、360、QQ等浏览器均兼容,理论上均兼容所有浏览器
    HTML ASCII 代码
    JavaScript 浏览器版本判定
    Delphi WebBrowser内核版本修改
  • 原文地址:https://www.cnblogs.com/mhc-fly/p/6871914.html
Copyright © 2011-2022 走看看