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基础学习文件内容的操作
    python基础学习字符串操作
    python基础学习运算符
    python基础学习列表
    centos一键安装nginx
    centos6添加整段多IP脚本
    Ubuntu 添加整段多IP脚本
    安装python2.7
    两位float型的小数相加,不会变成两位小时的处理方法
    mysql 5.7 执行group by 语句报错
  • 原文地址:https://www.cnblogs.com/mhc-fly/p/6871914.html
Copyright © 2011-2022 走看看