日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
GETOPT(1) FreeBSD 一般コマンドマニュアル GETOPT(1)
名称
getopt -- コマンドのオプションを解析する
書式
args=`getopt optstring $*` ; errcode=$?; set -- $args
解説
getopt ユーティリティは、シェル手続きによって簡単に解析するようにコマンド
行のオプションを解体し、正しいオプションであるかをチェックするために使用
されます。optstring は、認識されるオプション文字の文字列です、(getopt(3)
を参照)。文字にコロンが続くなら、オプションは、空白類によって区切られるか
どうか分からない、引数があると予想されます。特別のオプション `--' は、オ
プションの終りを区切るために使用されます。getopt ユーティリティは、オプ
ションの終わりに引数の `--' を置くか、または明示的に使用されるなら、それ
を認識します。シェル変数 ($1 $2 ...) は、各オプションが `-' に先導でき、
それぞれシェル引数であるように、リセットされます。また、各オプション引数
は、それぞれシェル引数です。
終了ステータス
getopt ユーティリティは、optstring に含まれないオプション文字に遭遇すると
き、標準エラー出力にエラーメッセージを印刷 (表示) し、ステータス > 0 で終
了します。
使用例
次のコードの断片は、オプション -a と -b を取り、引数を要求するオプション
-o を取ることができるコマンドのための引数を処理する方法を示しています。
args=`getopt abo: $*`
# 下記の set コマンドが行うものと異なった引数を解析するかも
# しれないので, `getopt abo: "$@"` を使用するべきではありません.
if [ $? -ne 0 ]; then
echo 'Usage: ...'
exit 2
fi
set -- $args
# getopt からの終了コードが, 定義によって 0 である, set のものに
# よって隠されるので, 利用者は, バッククォートされた getopt と
# ともに set コマンドを直接使用することができません.
while :; do
case "$1" in
-a|-b)
echo "flag $1 set"; sflags="${1#-}$sflags"
shift
;;
-o)
echo "oarg is '$2'"; oarg="$2"
shift; shift
;;
--)
shift; break
;;
esac
done
echo "single-char flags: '$sflags'"
echo "oarg is '$oarg'"
このコードは、次のいずれも等価なものとして、受け付けます:
cmd -aoarg file1 file2
cmd -a -o arg file1 file2
cmd -oarg -a file1 file2
cmd -a -oarg -- file1 file2
関連項目
getopts(1), sh(1), getopt(3)
歴史
Bell Labs のマニュアルページの著作から、Henry Spencer によって書かれまし
た。振る舞いは、Bell バージョンと思われます。使用例は、FreeBSD バージョン
3.2 と 4.0 で変更しました。
バグ
getopt(3) にあるバグは、何でもあります。
空白類または君込まれたシェルのメタ文字を含んでいる引数は、一般的にそのま
ま存続しません。これは、修正することが簡単と思えますが、そうではありませ
ん。getopt、またはこのマニュアルページの使用例を修正しようとする人々は、
FreeBSD の、このファイルの歴史をチェックするべきです。
不正なオプションに対するエラーメッセージは、getopt の呼び出しを含んでいる
シェル手続きからではなく、getopt によってもたらされると分かります。再び、
これは、修正することが困難です。
シェルのオプションの値を分離せずに引数を設定するために set コマンドを使用
する正確で最良の方法は、シェルによって異なります。
各シェルスクリプトは、(ここで示された使用例のように) 正確に途中の引数を解
析するために複雑なコードを扱わなければなりません。より良い getopt のよう
なツールは、複雑さの多くをツールに移動して、クライアントのシェルスクリプ
トをより単純に保ちます。
FreeBSD 13.2 August 1, 2015 FreeBSD 13.2