diff options
Diffstat (limited to 'documentation/manual-pages/ja/man1/getopt.1')
-rw-r--r-- | documentation/manual-pages/ja/man1/getopt.1 | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/documentation/manual-pages/ja/man1/getopt.1 b/documentation/manual-pages/ja/man1/getopt.1 new file mode 100644 index 0000000000..7f100b5148 --- /dev/null +++ b/documentation/manual-pages/ja/man1/getopt.1 @@ -0,0 +1,136 @@ +.\" %FreeBSD: src/usr.bin/getopt/getopt.1,v 1.19 2004/07/07 17:39:16 ru Exp % +.\" +.\" $FreeBSD$ +.Dd April 3, 1999 +.Dt GETOPT 1 +.Os +.Sh 名称 +.Nm getopt +.Nd コマンドラインオプションの解釈を行う +.Sh 書式 +.Nm args=\`getopt Ar optstring $*\` +; errcode=$?; set \-\- $args +.Sh 解説 +.Nm +ユーティリティは、 +シェルプロシージャによって簡単に解釈できるようにコマンドライン上の +オプションを切り分けます。そして、正しいオプションであるかを確かめます。 +.Ar optstring +は、認識されるオプション文字の文字列です ( +.Xr getopt 3 +を参照)。 +オプション文字のあとにコロン (``:'') がある場合、そのオプションは、 +(空白文字で区切られているかもしれない) 引数を持つことになります。 +特別なオプション +.Ql \-\- +は、オプションの終りを区別するために使われます。 +.Nm +ユーティリティは、オプションの最後に引数として +.Ql \-\- +を配置します。または、それが陽に使われた時はそれを終りと認識します。 +シェル変数 +(\fB$1 $2\fR ...) は、個々のオプションが +.Ql \- +に続くように再設定されます。そして、それ自身をシェル変数にします。 +各オプション引数は、同様にそれ用のシェル変数に入れられます。 +.Sh 使用例 +以下のコードの断片は、 +引数無しの +.Fl a, +.Fl b +オプションと、 +引数ありの +.Fl o +オプションを取ろうとしているコマンドのために、どのようにして +引数を処理するのかを示しています。 +.Pp +.Bd -literal -offset indent +args=\`getopt abo: $*\` +# \`getopt abo: "$@"\` を使ってはなりません。 +# 以下の set コマンドとは異ったように、引数を解釈してしまうためです。 +if [ $? -ne 0 ] +then + echo 'Usage: ...' + exit 2 +fi +set \-\- $args +# set コマンドを、バッククォートした getopt と共に、直接使用できません。 +# getopt の終了コードが set のもので隠されてしまうからです。 +# set の終了コードは 0 と定義されています。 +for i +do + case "$i" + in + \-a|\-b) + echo flag $i set; sflags="${i#-}$sflags"; + shift;; + \-o) + echo oarg is "'"$2"'"; oarg="$2"; shift; + shift;; + \-\-) + shift; break;; + esac +done +echo single-char flags: "'"$sflags"'" +echo oarg is "'"$oarg"'" +.Ed +.Pp +このコードは、以下の (コマンド指定の) 例のどれでも同じように +受け入れます。 +.\"(訳注)「コマンド指定の」は、訳者が勝手に挿入している。 +.\" 2.2.1R 対象(1997/04/27) Takeshi MUTOH <mutoh@info.nara-k.ac.jp> +.Pp +.Bd -literal -offset indent +cmd \-aoarg file file +cmd \-a \-o arg file file +cmd \-oarg -a file file +cmd \-a \-oarg \-\- file file +.Pp +.Ed +.Sh 関連項目 +.Xr getopts 1 , +.Xr sh 1 , +.Xr getopt 3 +.Sh 診断 +.Nm +ユーティリティは、 +.Ar optstring +中に含まれていないオプション文字に出会った時に、 +標準エラー出力にエラーメッセージを表示し、0 より大きな状態で終了します。 +.Sh 歴史 +Bell Labs のマニュアルを元に、 +.An Henry Spencer +が書きました。 +振舞いは、Bell Labs 版と同じであると信じています。 +使用例は +.Fx +バージョン 3.2 と 4.0 で変更しました。 +.Sh バグ +.Xr getopt 3 +が持っているバグは、そのまま持っています。 +.Pp +空白文字やシェルのメタキャラクタを含んだ引数は、一般に元のまま +残りません。 +これは直すのは簡単に思われますが、そうではありません。 +.Nm +や本マニュアルの使用例を直そうとする人は、 +.Fx +中のこのファイルの履歴を確認すべきです。 +.Pp +不正なオプションに対するエラーメッセージは、 +.Nm +を実行するシェルプロシージャから返すのではなく、 +.Nm +から返されます。 +これも直すのは困難です。 +.Pp +シェルオプションの値を分離すること無く、引数を指定するための +.Nm set +コマンドを使うためのとっても良い方法は、シェルのバージョンを +変えることです。 +.Pp +引数を部分的に正しく解釈するために、 +各シェルスクリプトは +(前記使用例のような) 複雑なコードを持つ必要があります。 +より良い getopt 的ツールは、複雑な部分の大半をツールの中に移動し、 +クライアントのシェルスクリプトを単純にするものでしょう。 |