6

getopts を使用して単語全体のフラグを取得できますか?

次のようなもの:

while getopts ":abc --word" opt; do
    case ${opt} in
        a) SOMETHING
            ;;
        ...
        --word) echo "Do something else."
            ;;
    esac
done

それらの二重破線の旗を拾おうとしています。

4

3 に答える 3

6

http://mywiki.wooledge.org/BashFAQ/035 クレジット: How can I use long options with the Bash getopts builtin? .

于 2014-02-25T20:56:07.883 に答える
2

これを行う1つの方法を見つけました:

while getopts ":abc-:" opt; do
    case ${opt} in
        a) echo "Do something"
            ;;
        ...
        -)
            case ${OPTARG} in
                "word"*) echo "This works"
                    ;;
            esac
    esac
done

opstring に -: を追加し、$OPTARG を使用してサブケースを追加すると、必要な長いオプションを取得できます。そのオプションに引数を含めたい場合は、* または =* をケースに追加して、引数を取得できます。

于 2014-02-25T20:57:10.707 に答える