Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

getoptcvt(1)

名前

getoptcvt - コマンドオプションを解析するために getopts に変換

形式

/usr/lib/getoptcvt [-b] filename
/usr/lib/getoptcvt 

説明

/usr/lib/getoptcvtfilename 内のシェルスクリプトを読み取り、 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 を使用しなければなりません (以下の「注意事項」セクションを参照)。

オプション

次のオプションがサポートされています。

–b

変換されたスクリプトを、 UNIX システムの旧リリースへ 移植可能にします。/usr/lib/getoptcvt は、filename 内のシェルスクリプトを変更し、変更後のシェルスクリプトを実行すると、 実行時に getoptsgetopt のどちらを呼び出すか判別できるようにします。

使用例 1 コマンド引数の処理

次に示すシェルプログラムの一部分では、オプション –a または –b 、およびオプション引数の必要なオプション –o を使用するコマンドについて、引数の使用例を示します。

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`
使用例 2 同一内容のコード式

このコードは、 次のコマンドすべてを同一内容として受け入れます。

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 の実行に影響を与える次の環境変数についての詳細は、environ(7) を参照してください。LC_CTYPE、LC_MESSAGES、および NLSPATH。

OPTIND

この変数は、次に処理すべき引数の索引として getoptcvt によって使用されます。

OPTARG

この変数は、オプションが引数を使用している場合に、引数を格納するために getoptcvt によって使用されます。

終了ステータス

次の終了ステータスが返されます。

0

optstring で指定した、または指定しなかったオプションが見つかりました。

>0

オプションの並びの終わりを検出した、またはエラーが発生しました。

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
CSI
有効

関連項目

sh(1), getopts(1), Intro(1), shell_builtins(1), getopt(3C), attributes(7)

診断

getopts は、 optstring に含まれていないオプション文字を検出すると、 標準エラー出力にエラーメッセージを表示します。

現在の実装においては、次のようにコマンド構文規格 ( Intro(1) を参照) に従わない使用方法が認められていますが、このような使用方法は、将来、システムのリリースではサポートされないので、使用しないでください。前述の 「使用例」と同様に、–a および –b がオプションであり、–o はオプション引数を持つオプションとします。次の例では、ルール 5 (オプション引数を持つオプションは別のオプションと一緒にまとめることはできない) に違反しています。

example% cmd -aboxxx filename

次の例では、ルール 6 (オプション引数を持つオプションの後には、スペースがなければならない) に違反しています。

example% cmd -ab oxxx filename

シェル変数 OPTIND の値を変更したり、 異なる引数の集まりを解析したりした場合の 結果は不確定です。