コマンドの引き数を解析する (拡張版)
options
と
-o|--options optstring )
と、解析されるパラメータ
( 「書式」
セクションの
parameters )
である。
第 2 部分は、
最初のオプションではないパラメータ
(オプション引き数ではないもの) の後か、
最初の
` -- '
の後から始まる。
第 1 部分に
` -o '
または
` --options '
オプションが見つからない場合、
第 2 部分の最初のパラメータは
短い形式のオプション文字列として使われる。
longopts
は交換可能である。
longopts
で指定されている長いオプション名の後に、1 個のコロンを続けることができる。
これは、そのオプションに引き数が必須であることを示す。
また、長いオプション名の後に 2 個のコロンを続けることもできる。
これは、そのオプションが引き数を取る場合もあることを示す。
-n, --name progname
エラーが報告された場合に
getopt (3)
ルーチンが使うプログラム名。
このオプションを指定しても、
getopt (1)
のエラーは getopt から発生したものとして表示される点に注意すること。
-o, --options shortopts
認識させる短い (1 文字の) オプションを指定する。
このオプションが指定されていない場合、
getopt
の 1 個の
` - '
で始まっていない最初のパラメータ (かつ、オプションの引き数でないもの) が
短いオプションの文字列として使われる。
shortopts
に指定されている短いオプション文字の後に、1 個のコロンを続けることができる。
これは、そのオプションに引き数が必須であることを示す。
また、長いオプション名の後に 2 個のコロンを続けることもできる。
これは、そのオプションが引き数を取る場合もあることを示す。
オプションの解析法と出力の生成法を変更するために、
shortopts の最初の文字を
` + '
または
` - '
にすることができる
(詳細は
「スキャンモード」
セクションを参照すること)。
-q, --quiet
getopt(3) によるエラー表示をさせない。
-Q, --quiet-output
通常の出力を生成させない。
-q
を指定しない限り、
getopt (3)
によってエラーが表示される。
-s, --shell shell
指定したシェルのクォート方法に設定する。
-s オプションが指定されていない場合、
BASH
でのクォート方法が使われる。
指定可能な引き数は、現在のところ
` sh ',
` bash ',
` csh ',
` tcsh '
である。
-u, --unquoted
出力をクォートしない。
空白と (シェル依存の) 特殊文字は、(他の
getopt (1)
の実装と同じように) このモードでは大混乱を引き起こす。
-T --test
getopt (1)
が拡張バージョンか古いバージョンかをテストする。
何も出力しないが、エラーステータスを 4 に設定する。
他の
getopt (1)
の実装の場合や、このバージョンで環境変数
GETOPT_COMPATIBLE
が設定されている場合、
` -- '
を返し、エラーステータスを 0 に設定する。
-V, --version
バージョン情報を出力し、正常終了する。
それ以上は何も出力されない。
互換
( クォートされない )
モードで生成することができる。
また、引き数とオプションではないパラメータに含まれる空白と他の特殊文字を
保護するモードで出力することもできる
( 「クォート」
セクションを参照すること)。
出力がシェルスクリプトで処理される場合、
その出力は別々の要素から構成されているようにみえる。
この要素は (大部分のシェル言語では shift コマンドを使って)
1 つ 1 つ処理できる。
この動作はクォートされないモードでは不完全である。
なぜなら、要素に空白や特殊文字があった場合、
要素が期待していない箇所で分割されてしまうからである。
必須とされる引き数が見つからない、またはオプションが認識されない、
といった原因でパラメータ解析に問題がある場合、
標準エラーにエラーが表示される。
このとき、不正な要素に対しては何も出力されず、
0 でないエラーステータスが返される。