名前 | 形式 | 機能説明 | オプション | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 診断 | 注意事項
/usr/lib/getoptcvt [-b] filename
/usr/lib/getoptcvt
/usr/lib/getoptcvt は filename 内のシェルスクリプトを読み取り、 getopt の代わりに getopts を使用できるように それを変換し、 その結果を標準出力に出力します。
getopts は、 Bourne シェル組み込みコマンドの 1 つであり、 定位置パラメタの解析および オプションの妥当性チェックに使用されます。 sh(1) を参照してください。 このコマンドは、 コマンド構文標準規格 ( intro(1) のルール 3 〜 10 を参照 ) のうち、 該当するルールすべてをサポートします。 このコマンドは、getopt コマンドの代わりに使用してください ( 以下の「注意事項」の項を参照 ) 。シェルの getopts 組み込みコマンドの構文を 次に示します。
getopts optstring name [ argument . . . ]
optstring には、getopts を使用するコマンドが認識できる オプション文字を入れなければなりません。 オプション文字の後にコロン (:) が付いている場合は、 そのオプションには 1 つまたは複数の引数があるとみなされます。 オプションと引数の間は、 空白によって区切られていなければなりません。
getopts は、呼び出されるたびに、 次のオプションをシェル変数 name に入れ、 処理すべき次の引数へのインデックスをシェル変数 OPTIND に入れます。 シェルまたはシェル手続きが呼び出されるたびに、 OPTIND の値は 1 に初期設定されます。
オプションにオプション引数が必要な場合、getopts はその引数をシェル変数 OPTARG に入れます。
不正なオプションが検出されると、? が name に入ります。
オプションの終わりが検出されると、getopts はゼロ以外の終了状態で終了します。 特殊オプション -- を使用して、オプションの終わりを表すことができます。
デフォルトでは、 getopts は定位置パラメタを解析します。 getopts コマンド行に追加の引数 (argument . . .) が指定されると、 getopts は定位置パラメタの代わりにその引数を解析します。
新しいコマンドはすべて、 Intro(1) で説明している コマンド構文標準規格に 従うようにするために、 定位置パラメタの解析、 および オプションが そのコマンドの有効なオプションであるかどうかの チェックに、 getopts または getopt を使用しなければなりません ( 以下の「注意事項」の項を 参照してください ) 。
次のオプションを指定できます。
変換されたスクリプトを、 UNIX システムの旧リリースへ 移植可能にします。/usr/lib/getoptcvt は、 filename 内のシェルスクリプトを変更し、変更後のシェルスクリプトを実行すると、 実行時に getopts と getopt のどちらを呼び出すか判別できるようにします。
while getopts abo: c do case $c in a | b) FLAG=$c;; o) OARG=$OPTARG;; \?) echo $USAGE exit 2;; esac done shift `expr $OPTIND - 1`
このコードは、 次のコマンドすべてを同一内容として受け付けます。
cmd -a -b -o "xxx z yy" filename cmd -a -b -o "xxx z yy" -filename cmd -ab -o xxx,z,yy filename cmd -ab -o "xxx z yy" filename cmd -o xxx,z,yy b a filename |
getopts の実行に影響する環境変数 LC_CTYPE、LC_MESSAGES、および NLSPATH については、environ(5) のマニュアルページを参照してください。
この変数は、次に処理すべき引数の索引として getoptcvt によって使用されます。
この変数は、オプションが引数を使用している場合に、引数を格納するために getoptcvt によって使用されます。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ |
属性値 |
使用条件 |
SUNWcsu |
CSI |
対応済み |
getopts は、 optstring に含まれていないオプション文字を検出すると、 標準エラー出力にエラーメッセージを表示します。
現在の実装においては、 次のようにコマンド構文規格( Intro(1) を参照 )に従わない使用方法が認められていますが、 このような使用方法は、 将来、システムのリリースではサポートされないので、 使用しないでください。 前述の 「使用例」 と同様に、 -a および -b がオプションであり、 -o はオプション引数を持つオプションとします。 次の例では、 オプション引数を持つオプションは 別のオプションと一緒にまとめることはできない、 というルール 5 に違反しています。
example% cmd -aboxxx filename |
次の例では、 オプション引数を持つオプションの後には、 空白がなければならない、 というルール 6 に違反しています。
example% cmd -ab oxxx filename |
シェル変数 OPTIND の値を変更したり、 異なる引数の集まりを解析したりした場合の 結果は不定です。
名前 | 形式 | 機能説明 | オプション | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 診断 | 注意事項