bash スクリプトで長いパラメータを処理したいと考えています。が見つかりましたが、OS X ではサポートされていません。GNU ではなく BSD で実装されgetopt
ている理由を誰か教えてもらえますか? getopt
GNU C lib でビルドしようとgetopt
しましたが、Linux のスキルが低いために失敗しました。
誰かがこの仕事をしましたか?
getopt 用の醸造ボトルがあります。
実行するだけbrew install gnu-getopt
です。
次のようにパスを指定できます
/usr/local/Cellar/gnu-getopt/1.1.6/bin/getopt
またはbrew link --force gnu-getopt
、リンクされるように使用します/usr/local/bin/
リンクを強制すると、システムが破損する可能性があることに注意してください (システムの getopt が gnu のものに置き換えられるため)。
を定義することを提案する他の回答も参照してくださいFLAGS_GETOPT_CMD
。
一般的には、getopts
代わりに使用し、短いオプションを使用することをお勧めします。この StackOverflow Q&Aで getopts の動作を確認できます。短いオプションは、OSX コマンド ライン ツール全体でより標準的であり、一貫性は良いことです。
また、getopts は bash に組み込まれているため、bash を実行できる他のすべてのプラットフォームと同様に、OSX でも確実に利用できます。
getopt
OSX でも利用できるがあることに注意してください。ターミナルから、入力man getopt
してドキュメントを表示します。長いオプションはサポートされていません。これは、OSX で実行するツールを作成するときに長いオプションを使用しない正当な理由です。
とにかくこれを行いたい場合は、 macportsgetopt
からインストールできます。あるいは、移植性を高めたい場合は、独自の長い引数の処理をロールすることができます。
いくつかのコードを投稿してください。デバッグを支援します。