Obecnie piszę skrypt Bash, który ma następujące wymagania:
- powinien działać na wielu różnych platformach Unix / Linux
- powinien obsługiwać zarówno opcje krótkie, jak i (GNU)
Wiem, że getopts
byłby to preferowany sposób pod względem przenośności, ale AFAIK nie obsługuje długich opcji.
getopt
obsługuje długie opcje, ale BashGuide zdecydowanie zaleca:
Nigdy nie używaj getopt (1). getopt nie może obsługiwać pustych ciągów argumentów ani argumentów z osadzonymi białymi spacjami. Proszę zapomnij, że kiedykolwiek istniał.
Tak więc nadal istnieje możliwość ręcznego parsowania. Jest to podatne na błędy, generuje całkiem sporo kodu typu „płyta podstawowa” i muszę samodzielnie obsługiwać błędy ( getopt(s)
wydaje mi się, że same zajmują się obsługą błędów).
Więc jaki byłby preferowany wybór w tym przypadku?