ksh93は+o型オプションと組み込みgetopts(1)をサポートしていますか?

ksh93は+o型オプションと組み込みgetopts(1)をサポートしていますか?

getopt(3)ksh93は、Sun Microsystemsが2004年春にBourne Shell導入したのと同じ方法で長いオプションをサポートしていますksh88

たとえば、次のように使用できます。

getopt(argc, argv, "V(version)");

--version短いオプションの長いエイリアスを作成します-V

ただし、Solaris libcはksh93使用されませんが、getopt(3)シンボルで始まる短いオプションをサポートするために、独自の実装が内部的に使用されます+

ksh93組み込みの実装とiffでこの機能を使用する方法はありますかgetopts(1)?どのように動作しますか?

答え1

以下は私が試したgetoptsの使い方の例です。

    #!/bin/ksh

    #Default value
    ONE=123
    TWO=456


    # getopts configuration
    USAGE="[-author?Andre Gelinas <[email protected]>]"
    USAGE+="[-copyright?2018]"
    USAGE+="[+NAME?TestGetOpts.sh]"
    USAGE+="[+DESCRIPTION?Try out for GetOps]"
    USAGE+="[o:one]#[one:=$ONE?First.]"
    USAGE+="[s:second]#[second:=$TWO?Second.]"
    USAGE+="[t:three]:[three?Third.]"
    USAGE+=$'[+SEE ALSO?\aman\a(1), \aGetOpts\a(1)]'

    while getopts "$USAGE" optchar ; do
        case $optchar in
                    o)  ONE=$OPTARG ;;
                    s)  TWO=$OPTARG ;;
                    t)  THREE=$OPTARG ;;
        esac
    done

    print "ONE = "$ONE
    print "TWO = "$TWO
    print "THREE = "$THREE

--one または -o を使用できます。 --man または --help を使用しても機能します。また、-oと-sは数字だけですが、-tは何でも受け入れることができます。ところで、一度見たいと思うかもしれませんhttps://docstore.mik.ua/orelly/unix3/korn/appb_11.htm返品。

関連情報