EDYCJA: Wskazano, że ten styl jest GNU-izmem i że Uniksy oparte na GNU zwykle używają składni pojedynczego myślnika (w szczególności wariantów OS X i BSD).
Pomimo statusu GNU-ism, wiele nowo napisanych programów w stylu uniksowym używa tego stylu:
--long-option dla długich nazw opcji,
-s dla krótkich (jednoznakowych) opcji,
-abc dla wielu krótkich opcji bez argumentów (jeden znak na opcję).
- Opcje z argumentami:
--long arglub --long=argdla długich opcji,
-s arg, -sargI (opcjonalnie) -s=argdo krótkich opcji. Można to połączyć z innymi krótkimi opcjami, o ile tylko ostatnia ma argument.
- Ta sama opcja „semantyczna” może mieć kilka aliasów, najczęściej krótką (szybszą do pisania) i długą (łatwiejszą do zapamiętania).
Każdy, kto używał powłoki Linuksa przez dłuższy czas, powinien znać ten styl 1 , więc ma on zasadę najmniejszego zaskoczenia po swojej stronie. Przyjemne jest również grupowanie wielu krótkich opcji bez dwuznaczności przy długich opcjach.
1 Na przykład, niektóre z programów wykorzystujących ten styl (na moim komputerze Linux): ls, grep, man, sed, bash, itd. ( EDIT: są to widocznie gnu-izmy choć maszyny BSD i OS X nie używają tego stylu)
Istnieje kilka bibliotek, które mogą zająć parsowania to dla ciebie (najbardziej znany jest realizacja GNU z getopt ), tylko potrzebuje was, aby określić co długie i krótkie opcje istnieją, czy biorą argument, i co zrobić, gdy opcja jest znaleziona. (I, oczywiście, co zrobić z argumentami pozycyjnymi, tj. Takimi, które nie zaczynają się od -i nie są argumentami dla poprzednich opcji)
findto bardzo stary program (a może bardziej prawdopodobne: przerobiona wersja bardzo starego programu), którego nie można łatwo zmienić w celu użycia nowej składni wiersza poleceń. Zepsuje się zbyt wiele skryptów, a zbyt wielu użytkowników przyzwyczajonych do starej składni narzeka. javacbył prawdopodobnie pod wpływem gccprzyjaciół i znajomych, którzy również stosują starą składnię z powodów historycznych.