O ksh93 suporta opções + o tipo com seus getopts (1) embutidos?

1

O ksh93 suporta opções longas da mesma maneira como foi introduzido pela Sun Microsystems na Primavera de 2004 para getopt(3) , Bourne Shell e ksh88 .

Você pode, por exemplo use:

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

para estabelecer um alias longo de --version para a opção curta -V .

No entanto, ksh93 não usa o getopt(3) do Solaris libc, mas uma implementação própria que é usada internamente para suportar opções curtas que começam com um sinal + .

Existe uma maneira de usar esse recurso com a implementação ksh93 builtin getopts(1) e iff, como funciona?

    
por schily 16.11.2018 / 11:05

1 resposta

0

Esse foi um exemplo de uso de getopts que eu tentei

    #!/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

Você pode usar um ou um ou -o. Usando --man ou --help também estão funcionando. Além disso, -o e -s são apenas numéricos, mas não aceitam nada. By the way, você pode querer olhar link também. Espero que isso possa ajudá-lo.

    
por 20.11.2018 / 22:40

Tags