Getoptsオプション処理、ハイフンのない[FILE]を追加できますか?

Getoptsオプション処理、ハイフンのない[FILE]を追加できますか?

私はgetopts高度なオプション解析を必要とするすべてのスクリプトを使用しており、動作します。とで構成されるdash標準の基本的な使い方に精通してgetoptsいます。 [-x][-x OPTION]

そのようなオプションを解析することは可能ですか?

 dash_script.sh FILE -x -z -o OPTION
 ## Or the inverse?
 dash_script.sh -x -z -o OPTION FILE

ベストアンサー1

スクリプトパラメータは通常オプションの後に続きます。他のコマンド(またはcp)を見てみると、lsこれが実際に真実であることがわかります。

したがって、処理するには、次のようにします。

dash_script.sh -x -z -o OPTION FILE

getopts次のように使用できます。

while getopts xzo: option
do
    case "$option" in
        x) echo "x";;
        z) echo "z";;
        o) echo "o=$OPTARG";;
    esac
done
shift $(($OPTIND-1))
FILE="$1"

オプションが処理された後、オプションではなく最初の引数(この場合)のインデックスにgetopts設定されます。$OPTINDFILE

おすすめ記事