名前 | 形式 | 機能説明 | 使用例 | 属性 | 関連項目 | 診断 | 注意事項
getopts コマンドが、 getopt に取って代わります。 詳細は、 以下の「注意事項」の項を参照してください。
getopt は、シェルプロシージャによる解析を容易にするために コマンド行のオプションを分解し、 各オプションが正当であるかどうかの確認に使用します。 optstring は、 認識されるオプションの文字列です。 getopt(3C) を参照してください。 オプション文字のあとにコロン (:) が付いている場合は、 そのオプションに引数があるとみなされます。 コロンと引数の間は、 空白で区切られていても、区切られていなくてもかまいません。 特殊なオプション – – は、 オプションの終わりを表すのに使用されます。 このオプションを明示的に使用すると getopt はこれを認識し、 省略された場合には getopt がこれを生成します。 いずれの場合でも、 getopt はオプションの終わりにこの特殊オプションを付けます。 シェルの位置パラメタ ($1 $2 . . . ) が再設定されて、 各オプションの前に – が付き、 各オプションはそのオプションの位置パラメタに入ります。 各オプション引数も、 同様に その引数の位置パラメタに入るように解析されます。
次の部分コードに、 オプション -a または -b 、および引数の必要なオプション -o を使用するコマンドについて、 引数の処理例を示します。
set -- `getopt abo: $*` if [ $? != 0 ] then echo $USAGE exit 2 fi for i in $* do case $i in -a | -b) FLAG=$i; shift;; -o) OARG=$2; shift 2;; --) shift; break;; esac done |
このコードは、 次のすべてのコマンドを同一内容として受け付けます。
cmd -aoarg filename1 filename2 cmd -a -o arg filename1 filename2 cmd -oarg -a filename1 filename2 cmd -a -oarg -- filename1 filename2 |
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
使用条件 | SUNWcsu |
CSI | 対応済み |
getopt は、 optstring に含まれていないオプション文字を検出すると、 標準エラー出力に エラーメッセージを表示します。
getopt は、次のメジャーリリースではサポートされません。 このリリースにおいては、 変換ツール getoptcvt が提供されています。 詳細については、 getopts(1) および getoptcvt(1) のマニュアルページを参照してください。
オプションを再走査する際は、 optind に 1 を再設定してください。
getopt は、オプションに続くオプション引数を、 空白および引用符で区切って指定できるという コマンド構文標準規則 8 の一部をサポートしません ( intro(1) 参照)。 たとえば、 次のコマンド行は正しく処理されません。
cmd -aa -b -o "xxx z yy" filename
この不完全性を正すためには、 getopt コマンドの代わりに getopts コマンドを使用してください。
オプション引数を持つあるオプションに、 optstring で示されているオプションの 1 つと同じ値が続いている場合 (前述の「使用例」の項を参照。 ただし、コマンド行 cmd -o -a filenameを使用する場合)、 getopt は、常に -a を -o のオプション引数として扱うので、 -a はオプションとして認識されません。 この場合、 この例の for ループは、filename 引数を通り越してシフトします。