Şu anda aşağıdaki gereksinimleri olan bir Bash betiği yazıyorum:
- Çok çeşitli Unix / Linux platformlarında çalışmalıdır.
- hem kısa hem de (GNU) uzun seçenekleri desteklemesi gerekir
getopts
Taşınabilirlik açısından tercih edilen yol olacağını biliyorum, ancak AFAIK uzun seçenekleri desteklemiyor.
getopt
uzun seçenekleri destekler, ancak BashGuide buna karşı şiddetle tavsiye eder:
Asla getopt (1) kullanmayın. getopt, boş argüman dizeleri ya da gömülü beyaz boşluklu argümanları işleyemez. Lütfen onun var olduğunu unut.
Yani, hala manuel ayrıştırma seçeneği var. Bu hataya açık, oldukça fazla kazan kodu üretiyor ve hataları kendi başıma halletmem gerekiyor (sanırım getopt(s)
kendi başlarına hata yönetimi yapıyoruz).
Peki, bu durumda tercih edilen seçim ne olurdu?