Manpages

名 前

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_COMPATIBLEgetopt を 強 制 的 に 互 換 モ ー ド に す る 。 こ の 環 境 変 数 と 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>

関 連 項 目

getopt(3), bash(1), tcsh(1).