名 前
getopt − コ マ ン ド の 引 き 数 を 解 析 す る (拡 張 版 )
書 式
getopt optstring parameters
getopt [options] [−−] optstring parameters
getopt [options] −o|−−options optstring [options] [−−] parameters
説 明
getopt は 、 シ ェ ル 手 続 き で 簡 単 に 解 析 で き る よ う に 、 コ マ ン ド ラ イ ン の オ プ シ ョ ン を 分 解 (解 析 ) す る た め に 使 わ れ る 。 ま た 、 正 し い オ プ シ ョ ン で あ る か を 調 べ る た め に も 使 わ れ る 。 こ れ を 行 う た め に GNU getopt(3) ル ー チ ン が 使 わ れ る 。
getopt を 呼 び 出 す と き に 使 わ れ た パ ラ メ ー タ は 、 2 つ の 部 分 に 分 け る こ と が で き る : getopt の 解 析 動 作 を 変 更 す る オ プ シ ョ ン (「 書 式 」 セ ク シ ョ ン の options と −o|−−options optstring) と 、 解 析 さ れ る パ ラ メ ー タ (「 書 式 」 セ ク シ ョ ン の parameters) で あ る 。 第 2 部 分 は 、 最 初 の オ プ シ ョ ン で は な い パ ラ メ ー タ (オ プ シ ョ ン 引 き 数 で は な い も の ) の 後 か 、 最 初 の ’ −− ’ の 後 か ら 始 ま る 。 第 1 部 分 に ’−o’ ま た は ’−−options’ オ プ シ ョ ン が 見 つ か ら な い 場 合 、 第 2 部 分 の 最 初 の パ ラ メ ー タ は 短 い 形 式 の オ プ シ ョ ン 文 字 列 と し て 使 わ れ る 。 環 境 変 数 GETOPT_COMPATIBLE が 設 定 さ れ た 場 合 、 ま た は 最 初 の パ ラ メ ー タ が オ プ シ ョ ン で な か っ た 場 合 (’−’ で 始 ま っ て い な い 場 合 。 こ れ は 「 書 式 」 セ ク シ ョ ン の 最 初 の 形 式 で あ る )、 getopt は 他 の バ ー ジ ョ ン の getopt(1) と 互 換 性 の あ る 出 力 を 生 成 す る 。 こ の 場 合 で も 、 パ ラ メ ー タ の 並 べ 替 え を 行 い 、 オ プ シ ョ ン 引 き 数 を 認 識 す る (詳 細 は 「 互 換 性 」 セ ク シ ョ ン を 参 照 す る こ と )。 伝 統 的 な getopt(1) の 実 装 で は 、 引 き 数 や オ プ シ ョ ン で は な い パ ラ メ ー タ で 空 白 と 他 の (シ ェ ル 特 有 の ) 特 殊 文 字 を 組 み 合 わ せ て 使 う こ と が で き な い 。 こ の 問 題 を 解 決 す る た め 、 こ の 実 装 で は ク ォ ー ト し た 出 力 を 生 成 す る 。 こ の 出 力 は 、 シ ェ ル (通 常 は eval コ マ ン ド が 使 わ れ る ) に よ っ て 再 び 解 析 さ れ な け れ ば な ら な い 。 こ れ に は ク ォ ー ト す べ き 文 字 列 を 保 護 す る と い う 効 果 が あ る が 、 getopt を 他 の バ ー ジ ョ ン と は 互 換 性 の な い 方 法 (「 書 式 」 セ ク シ ョ ン の 2, 3 番 目 の 形 式 ) で 呼 び 出 さ な け れ ば な ら な い 。 拡 張 版 の getopt(1) が イ ン ス ト ー ル さ れ て い る か ど う か を 調 べ る に は 、 特 別 な テ ス ト オ プ シ ョ ン (−T) を 使 う こ と が で き る 。
オ プ シ ョ ン
−a,
−−alternative 長 い オ
プ シ ョ ン を 1 個
の ’−’ で 始
め る こ と が で
き る よ う に す
る 。
−h, −−help ち ょ っ
と し た 使 用 ガ
イ ド を 表 示 し
、 正 常 終 了 す
る 。 そ れ 以 上
は 何 も 出 力 さ
れ な い 。
−l, −−longoptions longopts 認
識 さ せ る 長 い
(複 数 文 字 の ) オ
プ シ ョ ン を 指
定 す る 。 2 つ 以
上 の オ プ シ ョ
ン 名 を コ ン マ
で 区 切 っ て 一
度 に 指 定 で き
る 。 こ の オ プ
シ ョ ン は 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 バ ー ジ ョ ン 情 報 を 出 力 し 、 正 常 終 了 す る 。 そ れ 以 上 は 何 も 出 力 さ れ な い 。
解 析
こ の セ ク シ ョ ン で は getopt の パ ラ メ ー タ の 第 2 部 分 (「 書 式 」 セ ク シ ョ ン の parameters) の フ ォ ー マ ッ ト に つ い て 説 明 し て い る 。 次 の セ ク シ ョ ン (出 力 ) で は 生 成 さ れ る 出 力 に つ い て 説 明 し て い る 。 こ れ ら の パ ラ メ ー タ は 、 一 般 に 、 シ ェ ル 関 数 が 呼 ば れ た と き の パ ラ メ ー タ で あ る 。 シ ェ ル 関 数 が 呼 ば れ た と き の 各 パ ラ メ ー タ が getopt の パ ラ メ ー タ リ ス ト に あ る 1 つ の パ ラ メ ー タ に 厳 密 に 対 応 し て い る 点 に 注 意 し な け れ ば な ら な い (「 例 」 セ ク シ ョ ン を 参 照 す る こ と )。 全 て の 解 析 が GNU getopt(3) ル ー チ ン で 行 わ れ る 。 パ ラ メ ー タ は 左 か ら 右 へ 解 析 さ れ る 。 各 パ ラ メ ー タ は 、 短 い オ プ シ ョ ン ・ 長 い オ プ シ ョ ン ・ オ プ シ ョ ン へ の 引 き 数 ・ オ プ シ ョ ン で は な い パ ラ メ ー タ に 分 類 さ れ る 。 簡 単 な 短 い オ プ シ ョ ン は 、 ’−’ の 後 に 短 い オ プ シ ョ ン 文 字 が 続 く も の で あ る 。 オ プ シ ョ ン が 引 き 数 を 必 須 と し て い る 場 合 、 引 き 数 は オ プ シ ョ ン 文 字 の 直 後 に 書 く こ と が で き る 。 (コ マ ン ド ラ イ ン 上 で 空 白 で 区 切 ら れ た ) 次 の パ ラ メ ー タ と し て 書 く こ と も で き る 。 オ プ シ ョ ン が 引 き 数 を 取 る こ と も 取 ら な い こ と も で き る 場 合 、 引 き 数 が 存 在 す る な ら ば 、 オ プ シ ョ ン 文 字 の 直 後 に 書 か な け れ ば な ら な い 。
(最 後 の オ プ シ ョ ン を 除 く ) 全 て の オ プ シ ョ ン が 必 須 の 引 き 数 も オ プ シ ョ ン と し て の 引 き 数 も 必 要 と し な い 限 り 、 1 個 の ’−’ の 後 に 複 数 の 短 い オ プ シ ョ ン を 指 定 す る こ と が で き る 。 長 い オ プ シ ョ ン は 、 通 常 ’−−’ の 後 に 長 い オ プ シ ョ ン 名 が 続 く 。 オ プ シ ョ ン が 引 き 数 を 必 須 と し て い る 場 合 、 ’=’ で 区 切 っ て 長 い オ プ シ ョ ン 名 の 直 後 に 書 く こ と が で き る 。 ま た 、 (コ マ ン ド ラ イ ン 上 で 空 白 で 区 切 っ て ) 次 の 引 き 数 と し て 書 く こ と も で き る 。 オ プ シ ョ ン が 引 き 数 を 取 る こ と も 取 ら な い こ と も で き る 場 合 、 引 き 数 が 存 在 す る な ら ば 、 ’=’ で 区 切 っ て 長 い オ プ シ ョ ン 名 の 直 後 に 書 か な け れ ば な ら な い (’=’ を オ プ シ ョ ン の 後 に 書 い た に も 関 ら ず 、 そ の 後 に 何 も 指 定 し な か っ た 場 合 、 引 き 数 が 存 在 し な い も の と し て 解 釈 さ れ る 。 こ れ は ち ょ っ と し た バ グ で あ る 。 「 バ グ 」 セ ク シ ョ ン を 参 照 す る こ と )。 長 い オ プ シ ョ ン は 、 省 略 形 が 曖 昧 で な い (他 の オ プ シ ョ ン と 区 別 が つ く ) 限 り 、 短 く 省 略 す る こ と が で き る 。
’−’ で 始 ま ら ず 、 か つ 前 の オ プ シ ョ ン が 必 須 と し て い る 引 き 数 で も な い パ ラ メ ー タ は 、 オ プ シ ョ ン で は な い パ ラ メ ー タ で あ る 。 ’−−’ パ ラ メ ー タ の 後 に あ る パ ラ メ ー タ は 、 オ プ シ ョ ン で は な い パ ラ メ ー タ と し て 解 釈 さ れ る 。 環 境 変 数 POSIXLY_CORRECT が 設 定 さ れ て い る 場 合 、 ま た は 短 い オ プ シ ョ ン 文 字 列 が ’+’ で 始 ま っ て い る 場 合 、 最 初 の オ プ シ ョ ン で は な い パ ラ メ ー タ が 見 つ か っ た 時 点 で 、 残 り の 全 て の パ ラ メ ー タ は オ プ シ ョ ン で は な い パ ラ メ ー タ と し て 解 釈 さ れ る 。
出 力
出 力 は 前 の セ ク シ ョ ン で 説 明 し た 各 要 素 に 対 し て 生 成 さ れ る 。 出 力 は 要 素 が 入 力 で 指 定 さ れ た 順 番 で 生 成 さ れ る 。 た だ し 、 オ プ シ ョ ン で は な い パ ラ メ ー タ は 例 外 で あ る 。 出 力 は 互 換 (ク ォ ー ト さ れ な い ) モ ー ド で 生 成 す る こ と が で き る 。 ま た 、 引 き 数 と オ プ シ ョ ン で は な い パ ラ メ ー タ に 含 ま れ る 空 白 と 他 の 特 殊 文 字 を 保 護 す る モ ー ド で 出 力 す る こ と も で き る (「 ク ォ ー ト 」 セ ク シ ョ ン を 参 照 す る こ と )。 出 力 が シ ェ ル ス ク リ プ ト で 処 理 さ れ る 場 合 、 そ の 出 力 は 別 々 の 要 素 か ら 構 成 さ れ て い る よ う に み え る 。 こ の 要 素 は (大 部 分 の シ ェ ル 言 語 で は shift コ マ ン ド を 使 っ て ) 1 つ 1 つ 処 理 で き る 。 こ の 動 作 は ク ォ ー ト さ れ な い モ ー ド で は 不 完 全 で あ る 。 な ぜ な ら 、 要 素 に 空 白 や 特 殊 文 字 が あ っ た 場 合 、 要 素 が 期 待 し て い な い 箇 所 で 分 割 さ れ て し ま う か ら で あ る 。 必 須 と さ れ る 引 き 数 が 見 つ か ら な い 、 ま た は オ プ シ ョ ン が 認 識 さ れ な い 、 と い っ た 原 因 で パ ラ メ ー タ 解 析 に 問 題 が あ る 場 合 、 標 準 エ ラ ー に エ ラ ー が 表 示 さ れ る 。 こ の と き 、 不 正 な 要 素 に 対 し て は 何 も 出 力 さ れ ず 、 0 で な い エ ラ ー ス テ ー タ ス が 返 さ れ る 。 短 い オ プ シ ョ ン に 対 し て 、 出 力 と し て 1 個 の ’-’ と オ プ シ ョ ン 文 字 が 生 成 さ れ る 。 オ プ シ ョ ン が 引 き 数 を 取 る 場 合 、 次 の パ ラ メ ー タ が 引 き 数 に な る 。 オ プ シ ョ ン が 引 き 数 を 取 っ て も 取 ら な く て も よ い 場 合 に 、 引 き 数 が 指 定 さ れ て い な い と 、 ク ォ ー ト モ ー ド で は 次 の パ ラ メ ー タ が 生 成 さ れ る が 空 の パ ラ メ ー タ に な る 。 こ の 場 合 、 ク ォ ー ト し な い (互 換 ) モ ー ド で は 2 番 目 の パ ラ メ ー タ は 生 成 さ れ な い 。 他 の 多 く の getopt(1) の 実 装 で は 、 取 っ て も 取 ら な く て も よ い 引 き 数 は サ ポ ー ト さ れ て い な い 点 に 注 意 す る こ と 。 複 数 の 短 い オ プ シ ョ ン が 1 個 の ’−’ の 後 に 指 定 さ れ て い る 場 合 、 各 オ プ シ ョ ン は 区 切 ら れ た パ ラ メ ー タ と し て 出 力 に 表 示 さ れ る 。 長 い オ プ シ ョ ン に 対 し て 、 ’−−’ と 完 全 な オ プ シ ョ ン 名 が 1 つ の パ ラ メ ー タ と し て 生 成 さ れ る 。 「 入 力 で オ プ シ ョ ン が 略 書 き さ れ て い る 。 ま た は 、 オ プ シ ョ ン が 1 個 の ’−’ を 使 っ て 指 定 さ れ て い る 。 」 と い う こ と に 関 ら ず 、 こ の 動 作 を す る 。 引 き 数 は 短 い オ プ シ ョ ン と し て 扱 わ れ る 。 通 常 、 全 て の オ プ シ ョ ン と そ の 引 き 数 が 出 力 に 生 成 さ れ る ま で 、 オ プ シ ョ ン で は な い パ ラ メ ー タ は 出 力 さ れ な い 。 そ し て 、 1 個 の パ ラ メ ー タ と し て ’−−’ が 生 成 さ れ る 。 そ の 後 に オ プ シ ョ ン で は な い パ ラ メ ー タ は 、 見 つ か っ た 順 番 で 別 々 の パ ラ メ ー タ と し て 生 成 さ れ る 。 短 い オ プ シ ョ ン 文 字 列 の 最 初 の 文 字 が ’−’ で あ る 場 合 に の み 、 オ プ シ ョ ン で は な い パ ラ メ ー タ は 入 力 で 見 つ か っ た 位 置 で 出 力 さ れ る (こ の 動 作 は 「 書 式 」 セ ク シ ョ ン の 最 初 の 形 式 が 使 わ れ た 場 合 に は サ ポ ー ト さ れ な い 。 こ の 場 合 、 ’−’ と ’+’ が 前 に 付 く 全 て の パ ラ メ ー タ が 無 視 さ れ る )。
ク ォ ー ト
互 換 モ ー ド で は 、 引 き 数 や オ プ シ ョ ン で は な い パ ラ メ ー タ に あ る 空 白 や 「 特 殊 」 文 字 は 正 し く 扱 わ れ な い 。 こ の 出 力 は シ ェ ル ス ク リ プ ト に 与 え ら れ る の で 、 ス ク リ プ ト は 、 出 力 を ど の よ う に し て 個 々 の パ ラ メ ー タ に 分 割 す べ き な の か を 知 ら な い 。 こ の 問 題 を 回 避 す る た め 、 こ の 実 装 で は ク ォ ー ト 機 能 を 提 供 す る 。 こ れ は 、 各 パ ラ メ ー タ を ク ォ ー ト し て 出 力 を 生 成 す る 、 と い う 手 法 を 取 る 。 こ の 出 力 が も う 一 度 シ ェ ル (通 常 は シ ェ ル の eval コ マ ン ド ) に 与 え ら れ た 場 合 、 出 力 は 個 々 の パ ラ メ ー タ に 正 し く 分 割 さ れ る 。 環 境 変 数 GETOPT_COMPATIBLE が 設 定 さ れ た 場 合 ・ 「 書 式 」 セ ク シ ョ ン の 最 初 の 形 式 が 使 わ れ た 場 合 ・ ’−u’ オ プ シ ョ ン が 指 定 さ れ た 場 合 、 ク ォ ー ト は 行 わ れ な い 。 ク ォ ー ト の 規 則 は シ ェ ル ご と に 異 な る 。 使 用 し て い る シ ェ ル を 選 択 す る た め に ’−s’ オ プ シ ョ ン を 使 う こ と が で き る 。 以 下 の シ ェ ル で 正 し く 機 能 す る : ’sh’, ’bash’, ’csh’, ’tcsh’. 実 際 に は 、 2 つ の 「 方 式 」 に 分 類 さ れ る : sh 式 の ク ォ ー ト 規 則 と csh 式 の ク ォ ー ト 規 則 で あ る 。 他 の シ ェ ル ス ク リ プ ト 言 語 を 使 っ て い る 場 合 で も 、 こ れ ら の 方 式 の ど ち ら か が 使 え る 可 能 性 が あ る 。
ス キ ャ ン モ ー ド
特 殊 な ス キ ャ ン モ ー ド で あ る こ と を 示 す た め に 、 短 い オ プ シ ョ ン の 最 初 の 文 字 を ’−’ ま た は ’+’ に す る こ と が で き る 。 「 書 式 」 セ ク シ ョ ン の 最 初 の 呼 び 出 し 形 式 が 使 わ れ た 場 合 、 こ れ は 無 視 さ れ る 。 し か し 、 環 境 変 数 POSIXLY_CORRECT が 指 定 さ れ て い る か ど う か は 調 べ ら れ る 。 最 初 の 文 字 が ’+’ の 場 合 、 ま た は 環 境 変 数 POSIXLY_CORRECT が 設 定 さ れ て い る 場 合 、 オ プ シ ョ ン で は な い 最 初 の パ ラ メ ー タ (つ ま り 、 ’−’ で 始 ま っ て い な い パ ラ メ ー タ ) が オ プ シ ョ ン 引 き 数 で な い と 分 か っ た 時 点 で 解 析 は ス ト ッ プ す る 。 そ れ 以 降 の 全 て の パ ラ メ ー タ は 、 オ プ シ ョ ン で は な い パ ラ メ ー タ と し て 解 釈 さ れ る 。 最 初 の 文 字 が ’−’ の 場 合 、 オ プ シ ョ ン で は な い 引 き 数 は 見 つ か っ た 箇 所 で 出 力 さ れ る 。 通 常 の 操 作 で は 、 ’−−’ パ ラ メ ー タ が 生 成 さ れ た 後 で 、 最 後 に ま と め て 出 力 さ れ る 。 こ の 場 合 で も ’−−’ パ ラ メ ー タ は 生 成 さ れ る が 、 通 常 こ の モ ー ド で は 最 後 の パ ラ メ ー タ に な る 点 に 注 意 す る こ と 。
互 換 性
こ の バ ー ジ ョ ン の getopt(1) は 、 出 来 る だ け 他 の バ ー ジ ョ ン と 互 換 性 が あ る よ う に 書 か れ た 。 通 常 は 他 の バ ー ジ ョ ン を 修 正 す る こ と な く 、 こ の バ ー ジ ョ ン に 置 き 換 え る こ と が で き る 。 更 に 、 い く つ か の 利 点 が あ る 。
getopt の 最 初 の パ ラ メ ー タ の 最 初 の 文 字 が ’−’ で な い 場 合 、 getopt は 互 換 モ ー ド に な る 。 最 初 の パ ラ メ ー タ は 短 い オ プ シ ョ ン の 文 字 列 と し て 解 釈 さ れ 、 他 の 全 て の 引 き 数 が 解 析 さ れ る 。 こ の 場 合 で も 、 環 境 変 数 POSIXLY_CORRECT が 設 定 さ れ て い な い 限 り 、 パ ラ メ ー タ の 並 べ 替 え を 行 う (つ ま り 、 オ プ シ ョ ン で は な い 全 て の パ ラ メ ー タ が 最 後 に 出 力 さ れ る )。 環 境 変 数 GETOPT_COMPATIBLE は getopt を 強 制 的 に 互 換 モ ー ド に す る 。 こ の 環 境 変 数 と POSIXLY_CORRECT の 両 方 を 設 定 す る と 、 「 難 し い 」 プ ロ グ ラ ム の た め に 100% の 互 換 性 を 提 供 す る 。 し か し 、 通 常 は ど ち ら も 設 定 す る 必 要 が な い 。 互 換 モ ー ド で は 、 短 い オ プ シ ョ ン 文 字 列 の 最 初 に 付 く ’−’ と ’+’ は 無 視 さ れ る 。
リ タ ー ン コ ー ド
解 析 に 成 功 し た 場 合 、 getopt は エ ラ ー コ ー ド 0 を 返 す 。 getopt(3) が エ ラ ー を 返 し た 場 合 は 1 を 返 す 。 パ ラ メ ー タ が 理 解 で き な か っ た 場 合 は 2 を 返 す 。 メ モ リ が 足 り な い (out−of−memory) と い っ た 内 部 エ ラ ー の 場 合 は 3 を 返 す 。 −T オ プ シ ョ ン を 付 け て 呼 び 出 さ れ た 場 合 は 4 を 返 す 。
例
(ba)sh と (t)csh で の 使 用 例 の ス ク リ プ ト は 、 getopt(1) デ ィ ス ト リ ビ ュ ー シ ョ ン で 提 供 さ れ て い る 。 こ れ ら は オ プ シ ョ ン と し て /usr/local/lib/getopt ま た は /usr/lib/getopt に イ ン ス ト ー ル さ れ て い る 。
環 境 変 数
POSIXLY_CORRECT
こ の 環 境 変 数
は getopt(3) ル ー チ
ン で 調 べ ら れ
る 。 こ れ が 設
定 さ れ て い る
場 合 、 パ ラ メ
ー タ が オ プ シ
ョ ン ま た は オ
プ シ ョ ン 引 き
数 で な い と 分
か っ た 時 点 で
解 析 は 停 止 す
る 。 そ れ 以 降
の 全 て の パ ラ
メ ー タ は 、
’−’ で 始 ま
っ て い る か ど
う か に 関 係 な
く 、 オ プ シ ョ
ン で は な い パ
ラ メ ー タ と し
て 解 釈 さ れ る
。
GETOPT_COMPATIBLE
getopt に 対 し て 強 制 的 に 「 書 式 」 セ ク シ ョ ン の 最 初 の 呼 び 出 し 形 式 を 使 わ せ る 。
バ グ
getopt(3) は 、 引 き 数 を 取 っ て も 取 ら な く て も よ い 長 い オ プ シ ョ ン を 解 析 で き る (た だ し 、 短 い オ プ シ ョ ン の 場 合 は 解 析 で き な い )。 こ の getopt(1) は 、 オ プ シ ョ ン 引 き 数 が 指 定 さ れ て い な い 場 合 、 そ れ が 存 在 し な い も の と し て 扱 う 。 短 い オ プ シ ョ ン 変 数 を 全 く 使 い た く な い 場 合 、 書 式 は 全 く 直 感 的 で な い も の に な る (明 示 的 に 空 の 文 字 列 に 設 定 す る 必 要 が あ る )。
著 者
Frodo Looijaard <frodol [AT] dds.nl>