getopt は Mac と Ubuntu であんまりこんぱちびりてぃーないぜー。。。

getopt コマンドは Mac と Ubuntu で互換性が低いというのにハマりました。。。

シェルなんかでオプションを処理するのに使用する getopt コマンドというのがあります。
この getopt、Mac 環境のもの(BSD)と Ubuntu 環境のもの(GNU)で提供しているオプションとかが結構違うみたいなのです。
github にあげている dotfiles のセットアップ用シェルがうまく Mac 環境で動いていなくて、原因を調べたらどうやらこれのようでした。。。

経緯は知らないのですが、GNU で拡張された部分が大量だったってことなんでしょうかねぇ。。。

Mac での man ページ。オプションに関する説明が全然ない。。。

Ubuntu 環境での man ページ。ちょっとしか写ってないけど、オプションの説明がちゃんとしている。。。
ちなみに getopts というのもありますが、こっちは bash とかの組み込み関数。用途は似たような感じ。確かロングオプションをサポートするのに getopt を選択したように覚えています。

コメント

このブログの人気の投稿

PostgreSQLで多次元配列を1次元配列に展開したい

inotify でファイル監視しようず!

ジャックパーセルのかかとの内側を直した