zoukankan      html  css  js  c++  java
  • getopt 示例

    #!/bin/bash
    
    # ./test.sh -a oneArg 'tow arg' --ccc=ccccc -c  -b bbbbb
    # 选项 a
    # 选项 c 值是 'ccccc'
    # 选项 c 没有值
    # 选项 b 值是 'bbbbb'
    # 剩余参数:
    # --> oneArg
    # --> tow arg
    
    
    #-o 短选项, --long 长选项,选项后接冒号表示带有值,接两个冒号表示选项值可选,选项值可选时必须紧贴选项 如 -cArg
    #-- 用法:如创建"-f"的目录怎么办?mkdir -- -f 这样-f就不会被当作选项
    TEMP=`getopt -o ab:c:: --long aaa,bbb:,ccc:: -n 'test.sh' -- "$@"`
    if [ $? != 0 ] ; then echo "终止运行..." >&2; exit 1; fi
    
    #重新排列参数的顺序,也就是改变$1,$2...$n的值,这些值在getopt中重新排列过了
    eval set -- "$TEMP"
    
    option="$1"
    value="$2"
    while true ; do
        case "$1" in
            -a|--aaa) echo "选项 a" ; shift ;;#选项不带值 shift
            -b|--bbb) echo "选项 b 值是 '$2'" ; shift 2 ;; #选项带值 shift 2
            -c|--ccc)
                case "$2" in
                    "") echo "选项 c 没有值"; shift 2 ;;
                    *)  echo "选项 c 值是 '$2'" ; shift 2 ;;
                esac ;;
            --) shift ; break ;;
            *) echo "内部错误" ; exit 1 ;;
        esac
    done
    
    echo "剩余参数:"
    for arg in "$@"
    do
       echo "--> $arg" ;
    done
    

      

  • 相关阅读:
    Servlet Class4
    Servlet Class3
    Servlet Class2
    Servlet Class1
    HTTP基础知识
    XML基础知识
    JAVA Class25
    JAVA Class24
    JAVA Class23
    JAVA Class22
  • 原文地址:https://www.cnblogs.com/zbseoag/p/12672572.html
Copyright © 2011-2022 走看看