現在、次の要件を持つBashスクリプトを作成しています。
- さまざまなUnix/Linuxプラットフォームで実行する必要があります
- 短いオプションと(GNU)長いオプションの両方をサポートする必要があります
getopts
を知っています 移植性の観点からは好ましい方法ですが、AFAIKは長いオプションをサポートしていません。
getopt
長いオプションをサポートしていますが、BashGuideはそれに対して強く推奨しています:
getopt(1)は絶対に使用しないでください。 getoptは、空の引数文字列、または空白が埋め込まれた
引数を処理できません。
存在したことを忘れてください。
したがって、手動解析のオプションはまだあります。これはエラーが発生しやすく、かなりの定型コードを生成するため、自分でエラーを処理する必要があります(getopt(s)
自分でエラー処理を行います。
それで、この場合の好ましい選択は何でしょうか?
承認された回答:
さまざまなUnicesに移植可能である必要がある場合は、POSIXshに固執する必要があります。そして、そこにあるAFAIUには、手作業で議論を処理する以外に選択肢はありません。